IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Agents de placement/Fenêtres Java Discussion :

[débutant] Problème JSplitPane (modif :InternalFrame)


Sujet :

Agents de placement/Fenêtres Java

  1. #1
    Membre habitué Avatar de pingoui
    Homme Profil pro
    Activité professionnelle sans liens avec le developpement
    Inscrit en
    Juillet 2004
    Messages
    582
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Activité professionnelle sans liens avec le developpement
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2004
    Messages : 582
    Points : 185
    Points
    185
    Par défaut [débutant] Problème JSplitPane (modif :InternalFrame)
    Bonjour,

    Afin d'alleger le débugague de mon prog, j'ai supprimé mon JSplitPane
    J'aimerai désormais le réinsérer.

    Pour cela, j'ai fais: (voir les attributs et la méthode init)
    MaFrame.java
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
     
    import javax.swing.*; 
     
    import java.awt.*;
     
    /** 
     * MaFrame.java 
     * La fenetre Principale de l'application. 
     */ 
    public class MaFrame extends JFrame{ 
     
        /** --- Attributs statiques --- */ 
     
        /** L'instance de la fenetre elle meme */ 
        private static MaFrame maFrame; 
     
        /* --- Attributs --- */ 
     
        /** Les panels pour le JSplitPane*/
        private JPanel panelHaut, panelBas, panelGauche, panelDroite;
     
        /** Le panel de la partie du bas. */ 
        private PartieDuBas partieDuBas; 
     
        /** Le menu de la fenetre. */ 
        private MenuFenetre menuFenetre; 
     
     
     
     
        /* --- Constructors --- */ 
     
        /** 
         * Crée une nouvelle instance de la fenetre. 
         */ 
        private MaFrame(){ 
            super("Mon premier prog"); 
            setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);          
        } 
     
        /* --- Accessors --- */ 
     
        /** 
         * Accesseur en lecture sur la partie du bas : PartieDuBas. 
         * 
         * @return L'objet PartieDusBas de la fenetre. 
         */ 
        public PartieDuBas getPartieDuBas(){return partieDuBas;} 
     
     
        /* --- Methods statiques --- */ 
     
        /** 
         * Permet de récupérer la fenêtre, au premier appel crée celle-ci, sinon 
         * retourne elle-meme. 
         * @return La fenetre Principale : MaFrame. 
         */ 
        public static MaFrame getMaFrame() { 
            if (maFrame == null) { 
                maFrame = new MaFrame(); 
            } 
            return maFrame; 
        } 
     
        /** --- Methodes --- */ 
     
        /** 
         * Initialise les menu, le contenu de la fenetre... 
         */ 
        public void init(){ 
            getContentPane().setBackground(new Color(255,255,255)); 
            menuFenetre = new MenuFenetre(); 
            setJMenuBar(menuFenetre); 
     
            JSplitPane panelHorizontal = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT); 
            JSplitPane panelBas = new JSplitPane(JSplitPane.VERTICAL_SPLIT);
            panelHorizontal.setLeftComponent(panelHaut); 
            panelHorizontal.setRightComponent(panelBas);
            panelBas.setLeftComponent(panelGauche);
            panelBas.setRightComponent(panelDroite);
     
     
            panelGauche = new PartieDuBas(); 
            //partieDuBas = new PartieDuBas(); 
            getContentPane().setLayout(new BorderLayout()); 
            getContentPane().add(panelHorizontal,BorderLayout.CENTER);  
        }    
    }
    En faisant ça, je ne vois pas les compartiment de la JSlipPane.
    De plus, pour le reste du code, je fais par exemple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    MaFrame.getMaFrame().getPartieDuBas().ajoutTabbed(openFilePath,nomFichierOuvert); // On ajoute un Tabbed Pane
    dois-je ajouter dans MaFrame un Accesseur supplementaire et dois je modifier l'Accesseur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    public PartieDuBas getPartieDuBas(){return partieDuBas;}
    Merci pour votre aide

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Août 2004
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 85
    Points : 102
    Points
    102
    Par défaut
    Bon, le fait que tu vois pas les compartiments de ton split pane vient du fait que tes Panels sont pas initialisés, sauf le panel gauche. Le problème, c'est qu'il est initialisé après avoir été placé dans le splitpane. Don place la ligne panelGauche = new PartieDuBas() avant le setLeftComponent du panelBas. De manière générale, essaye de construire tes panels avant de les ajouter dans un container (que ce soit par les méthodes add ou setLeftCOmponent ..... etc).

    En ce qui concerne l'accesseur getPartieDuBas, oui il faut le modifier puisque maintenant ta partiDuBas s'appelle panelGauche ; c'est lui qu'il faut retourner. Du coup, l'attribut partieDuBas sert à plus rien (ou alors tu fait l'inverse : tu gardes l'attribut partiDuBas et tu spprimes panelGauche ; attention alors à bien modifier la méthode init en conséquence.)

  3. #3
    Membre habitué Avatar de pingoui
    Homme Profil pro
    Activité professionnelle sans liens avec le developpement
    Inscrit en
    Juillet 2004
    Messages
    582
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Activité professionnelle sans liens avec le developpement
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2004
    Messages : 582
    Points : 185
    Points
    185
    Par défaut
    C'est cool chef Ca marche impec.

    Difficulté supplementaire:

    Comment mettre un icon "agrandir" pour ouvrir par exemple partieDuBas en plein page et un icon "reduire" pour le remettre à sa place en bas à Gauche?

    merci

  4. #4
    Membre actif
    Inscrit en
    Avril 2004
    Messages
    238
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 238
    Points : 265
    Points
    265
    Par défaut
    Dans tonmenu tu cale 2 icones auquel t'associe les actions :
    Agrandir :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    panelHorizontal.setDividerLocation(0d);//on agarndit au max la partie du bas
    panelBas.setDividerLocation(1d);// on agarndit au maw la partie de gauche
    reduire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    panelHorizontal.setDividerLocation(0.8d);//on agarndit au max la partie du bas
    panelBas.setDividerLocation(0.2d);// on agarndit au maw la partie de gauche
    Ou au lieu de mettre 0.8 et 0.2 quand tu agrandit tu sauve les anciennes valeurs et quand tu redui tu les restaure
    "Quand le sage montre la lune,
    L'idiot regarde le doigt."

  5. #5
    Membre habitué Avatar de pingoui
    Homme Profil pro
    Activité professionnelle sans liens avec le developpement
    Inscrit en
    Juillet 2004
    Messages
    582
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Activité professionnelle sans liens avec le developpement
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2004
    Messages : 582
    Points : 185
    Points
    185
    Par défaut
    Dans le menu?

    Je pensais mettre les icons directement enhaut à droite dans les Jpanel (comme dans eclipse)



    Ou au lieu de mettre 0.8 et 0.2 quand tu agrandit tu sauve les anciennes valeurs et quand tu redui tu les restaure
    Je ne comprends pas trop ce que tu veux dire? tu stocke les valeurs où?

  6. #6
    Membre actif
    Inscrit en
    Avril 2004
    Messages
    238
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 238
    Points : 265
    Points
    265
    Par défaut
    Un exemple rapide.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    public class test5 extends javax.swing.JFrame {
     
     
        /** Creates new form test5 */
        public test5() {
            initComponents();
        }
     
        private void initComponents() {
            jPanel1 = new javax.swing.JPanel();
            panelBas = new javax.swing.JSplitPane();
            panelHorizontal = new javax.swing.JSplitPane();
            jToolBar1 = new javax.swing.JToolBar();
            jButton1 = new javax.swing.JButton();
            jButton2 = new javax.swing.JButton();
     
            addWindowListener(new java.awt.event.WindowAdapter() {
                public void windowClosing(java.awt.event.WindowEvent evt) {
                    System.exit(0);
                }
            });
     
            jPanel1.setLayout(new java.awt.BorderLayout());
     
            panelHorizontal.setOrientation(javax.swing.JSplitPane.VERTICAL_SPLIT);
            panelBas.setLeftComponent(panelHorizontal);
     
            jPanel1.add(panelBas, java.awt.BorderLayout.CENTER);
     
            getContentPane().add(jPanel1, java.awt.BorderLayout.CENTER);
     
            jButton1.setText("agrandir");
            jButton1.addActionListener(new java.awt.event.ActionListener() {
                public void actionPerformed(java.awt.event.ActionEvent evt) {
                    actionAgrandir(evt);
                }
            });
     
            jToolBar1.add(jButton1);
     
            jButton2.setText("reduire");
            jButton2.addActionListener(new java.awt.event.ActionListener() {
                public void actionPerformed(java.awt.event.ActionEvent evt) {
                    actionReduire(evt);
                }
            });
     
            jToolBar1.add(jButton2);
     
            getContentPane().add(jToolBar1, java.awt.BorderLayout.NORTH);
     
        }
     
        private void actionReduire(java.awt.event.ActionEvent evt) {
            panelHorizontal.setDividerLocation(0.8d);
            panelBas.setDividerLocation(0.2d);
        }
     
        private void actionAgrandir(java.awt.event.ActionEvent evt) {
            panelHorizontal.setDividerLocation(0d);
            panelBas.setDividerLocation(1d);
        }
     
     
        /**
         * @param args the command line arguments
         */
        public static void main(String args[]) {
            new test5().show();
        }
     
     
        private javax.swing.JButton jButton1;
        private javax.swing.JButton jButton2;
        private javax.swing.JPanel jPanel1;
        private javax.swing.JToolBar jToolBar1;
        private javax.swing.JSplitPane panelBas;
        private javax.swing.JSplitPane panelHorizontal;
     
    }
    dsl peut faire plus, j'ai du taf aujourd'hui
    "Quand le sage montre la lune,
    L'idiot regarde le doigt."

  7. #7
    Membre habitué Avatar de pingoui
    Homme Profil pro
    Activité professionnelle sans liens avec le developpement
    Inscrit en
    Juillet 2004
    Messages
    582
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Activité professionnelle sans liens avec le developpement
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2004
    Messages : 582
    Points : 185
    Points
    185
    Par défaut
    re narfiggo,

    J'ai testé ton petit bout de code, il me sera grandement utile plus tard par contre, il y a un petit bug... il agrandi toujours la m^me partie... mais cest normale, tu n'a pas eu le temps de le faire correctement

    J'aurai aimer pouvoir faire la même chose avec les boutons standart q'uon trouve sur les JFrame par exemple (en haut à Droite)

    Un bouton pour agrandir et un pour réduire

  8. #8
    Membre actif
    Inscrit en
    Avril 2004
    Messages
    238
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 238
    Points : 265
    Points
    265
    Par défaut
    Un autre exemple avec des boutons alors :
    Ya quelques erreurs qui apparaissent parfois... C'est pas finalisé
    Mais c'est une base de depart
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    import javax.swing.*;
    import javax.swing.border.*;
    import java.awt.*;
    import java.awt.event.*;
     
     
    public class TestPingoui extends JFrame implements ActionListener{
     
        double savePanel1_1 = -1;
        double savePanel1_2 = -1;
        double savePanel2_1 = -1;
        double savePanel2_2 = -1;
        double savePanel3_1 = -1;
        double savePanel3_2 = -1;
     
     
        public TestPingoui(){
            initComponents();
            setSize(800,600);
        }
     
        private void initComponents() {
            jSplitPane1 = new JSplitPane();
            jSplitPane2 = new JSplitPane();
            jPanel1 = new JPanel();
            jToolBar1 = new JToolBar();
            jButton1 = new JButton();
            jButton2 = new JButton();
            jPanel2 = new JPanel();
            jToolBar2 = new JToolBar();
            jButton3 = new JButton();
            jButton4 = new JButton();
            jPanel3 = new JPanel();
            jToolBar3 = new JToolBar();
            jButton5 = new JButton();
            jButton6 = new JButton();
     
            addWindowListener(new WindowAdapter() {
                public void windowClosing(WindowEvent evt){System.exit(0);}
            });
     
            jSplitPane2.setOrientation(JSplitPane.VERTICAL_SPLIT);
            jPanel1.setLayout(new BorderLayout());
            jPanel1.setBackground(new Color(125,0,0));
     
            jToolBar1.setFloatable(false);
            jToolBar1.setBorder(new EtchedBorder());
     
            jToolBar1.add(Box.createHorizontalGlue());
            jButton1.setIcon(new ImageIcon("re.jpg"));
            jButton1.setToolTipText("reduire");
            jButton1.setPreferredSize(new Dimension(20, 20));
            jButton1.addActionListener(this);
     
            jToolBar1.add(jButton1);
     
            jButton2.setIcon(new ImageIcon("ag.jpg"));
            jButton2.setToolTipText("agrandir");
            jButton2.setPreferredSize(new Dimension(20, 20));
            jButton2.addActionListener(this);
            jToolBar1.add(jButton2);
     
            jPanel1.add(jToolBar1,BorderLayout.NORTH);                
     
     
            jSplitPane2.setLeftComponent(jPanel1);
     
            jPanel2.setLayout(new BorderLayout());
            jPanel2.setBackground(new Color(0,125,0));
     
            jToolBar2.setFloatable(false);
            jToolBar2.setBorder(new EtchedBorder());
     
            jToolBar2.add(Box.createHorizontalGlue());
     
            jButton3.setIcon(new ImageIcon("re.jpg"));
            jButton3.setToolTipText("reduire");
            jButton3.setPreferredSize(new Dimension(20, 20));
            jButton3.addActionListener(this);
            jToolBar2.add(jButton3);
     
            jButton4.setIcon(new ImageIcon("ag.jpg"));
            jButton4.setToolTipText("agrandir");
            jButton4.setPreferredSize(new Dimension(20, 20));
            jButton4.addActionListener(this);
            jToolBar2.add(jButton4);
     
            jPanel2.add(jToolBar2,BorderLayout.NORTH);
     
            jSplitPane2.setRightComponent(jPanel2);
     
            jSplitPane1.setLeftComponent(jSplitPane2);
     
            jPanel3.setLayout(new java.awt.BorderLayout());
            jPanel3.setBackground(new Color(0,0,125));
     
            jToolBar3.setFloatable(false);
            jToolBar3.setBorder(new EtchedBorder());
            jToolBar3.add(Box.createHorizontalGlue());
     
            jButton5.setIcon(new ImageIcon("re.jpg"));
            jButton5.setToolTipText("reduire");
            jButton5.setPreferredSize(new Dimension(20, 20));
            jButton5.addActionListener(this);
            jToolBar3.add(jButton5);
     
            jButton6.setIcon(new ImageIcon("ag.jpg"));
            jButton6.setToolTipText("agrandir");
            jButton6.setPreferredSize(new Dimension(20, 20));
            jButton6.addActionListener(this);
            jToolBar3.add(jButton6);
     
            jPanel3.add(jToolBar3,BorderLayout.NORTH);
     
            jSplitPane1.setRightComponent(jPanel3);
     
            getContentPane().add(jSplitPane1,BorderLayout.CENTER);
     
            pack();
        }
     
     
        /**
         * @param args the command line arguments
         */
        public static void main(String args[]) {
            new TestPingoui().show();
        }
     
     
        // Variables declaration - do not modify
        private JButton jButton1;
        private JButton jButton2;
        private JButton jButton3;
        private JButton jButton4;
        private JButton jButton5;
        private JButton jButton6;
        private JPanel jPanel1;
        private JPanel jPanel2;
        private JPanel jPanel3;
        private JSplitPane jSplitPane1;
        private JSplitPane jSplitPane2;
        private JToolBar jToolBar1;
        private JToolBar jToolBar2;
        private JToolBar jToolBar3;
        // End of variables declaration
     
     
        public void actionPerformed(ActionEvent e){
        	if(e.getSource().equals(jButton1)){
        		if(savePanel1_1 != -1)    		
        			jSplitPane1.setDividerLocation(savePanel1_1);
        		if(savePanel1_2 != -1)    		
            	jSplitPane2.setDividerLocation(savePanel1_2);
            savePanel1_1 = -1;
            savePanel1_2 = -1;
          }
          if(e.getSource().equals(jButton2)){
          	savePanel1_1 = (double)jSplitPane1.getDividerLocation()/jSplitPane1.getMaximumDividerLocation();
            savePanel1_2 = (double)jSplitPane2.getDividerLocation()/jSplitPane2.getMaximumDividerLocation();
        		jSplitPane1.setDividerLocation(1d);
            jSplitPane2.setDividerLocation(1d);
          }
          if(e.getSource().equals(jButton3)){
          	if(savePanel2_1 != -1) 
        			jSplitPane1.setDividerLocation(savePanel2_1);
    				if(savePanel2_2 != -1)     			
            	jSplitPane2.setDividerLocation(savePanel2_2);
            savePanel2_1 = -1;
            savePanel2_2 = -1;
          }
          if(e.getSource().equals(jButton4)){
          	savePanel2_1 = (double)jSplitPane1.getDividerLocation()/jSplitPane1.getMaximumDividerLocation();
            savePanel2_2 = (double)jSplitPane2.getDividerLocation()/jSplitPane2.getMaximumDividerLocation();
        		jSplitPane1.setDividerLocation(1d);
            jSplitPane2.setDividerLocation(0d);
          }
          if(e.getSource().equals(jButton5)){
          	if(savePanel3_1 != -1) 
        			jSplitPane1.setDividerLocation(savePanel3_1);
        		if(savePanel3_2 != -1) 
            	jSplitPane2.setDividerLocation(savePanel3_2);
            savePanel3_1 = -1;
            savePanel3_2 = -1;
          }
          if(e.getSource().equals(jButton6)){
          	savePanel3_1 = (double)jSplitPane1.getDividerLocation()/jSplitPane1.getMaximumDividerLocation();
            savePanel3_2 = (double)jSplitPane2.getDividerLocation()/jSplitPane2.getMaximumDividerLocation();
        		jSplitPane1.setDividerLocation(0d);
            jSplitPane2.setDividerLocation(0d);
          }
        }
    }
    Les images sont la et la
    "Quand le sage montre la lune,
    L'idiot regarde le doigt."

  9. #9
    Membre habitué Avatar de pingoui
    Homme Profil pro
    Activité professionnelle sans liens avec le developpement
    Inscrit en
    Juillet 2004
    Messages
    582
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Activité professionnelle sans liens avec le developpement
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2004
    Messages : 582
    Points : 185
    Points
    185
    Par défaut
    hello narfiggo,

    merci pour ta réponse .... désolé si je répond que maintenant.... je viens juste de rentré de vacances 8)

    C'est éxacement ce que je veux ! merci chef

    Peut on récupérer les icons directement sans devoir créer un jeux de templates... je veux dire récuperer les icons comme lorsqu'on ouvre un JDialog ou une JFrame ?

  10. #10
    Membre actif
    Inscrit en
    Avril 2004
    Messages
    238
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 238
    Points : 265
    Points
    265
    Par défaut
    Peut etre, mais la je sais pas faire.
    "Quand le sage montre la lune,
    L'idiot regarde le doigt."

  11. #11
    Membre habitué Avatar de pingoui
    Homme Profil pro
    Activité professionnelle sans liens avec le developpement
    Inscrit en
    Juillet 2004
    Messages
    582
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Activité professionnelle sans liens avec le developpement
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2004
    Messages : 582
    Points : 185
    Points
    185
    Par défaut
    Peux t-on alors changer le JPanel par autre chose pour avoir les icons ?

  12. #12
    Membre actif
    Inscrit en
    Avril 2004
    Messages
    238
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 238
    Points : 265
    Points
    265
    Par défaut
    Tu peux utiliser des JInternalFrame sinon :
    http://java.sun.com/docs/books/tutorial/uiswing/components/internalframe.html
    "Quand le sage montre la lune,
    L'idiot regarde le doigt."

  13. #13
    Membre habitué Avatar de pingoui
    Homme Profil pro
    Activité professionnelle sans liens avec le developpement
    Inscrit en
    Juillet 2004
    Messages
    582
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Activité professionnelle sans liens avec le developpement
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2004
    Messages : 582
    Points : 185
    Points
    185
    Par défaut
    Ok merci....

    Je viens de changer mes Jpanel en JInternalFrame

    J'ai cette erreur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    java.lang.Error: Do not use Haut.setLayout() use Haut.getContentPane().setLayout() instead
    	at javax.swing.JInternalFrame.createRootPaneException(JInternalFrame.java:416)
    	at javax.swing.JInternalFrame.setLayout(JInternalFrame.java:483)
    	at Haut.<init>(Haut.java:11)
    	at MaFrame.init(MaFrame.java:76)
    	at Prog.main(Prog.java:26)
    Exception in thread "main"
    Maframe.java
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
     
    public class MaFrame extends JFrame{ 
     
        /** --- Attributs statiques --- */ 
     
        /** L'instance de la fenetre elle meme */ 
        private static MaFrame maFrame;
     
        /* --- Attributs --- */ 
     
        /** Les panels pour le JSplitPane*/
        private JInternalFrame panelHaut, panelBas, panelGauche, panelDroite;
     
        /** Le panel de la partie du bas. */ 
        private PartieDuBas partieDuBas; 
     
        /** Le menu de la fenetre. */ 
        private MenuFenetre menuFenetre; 
     
     
        /* --- Constructors --- */ 
     
        /** 
         * Crée une nouvelle instance de la fenetre. 
         */ 
        private MaFrame(){ 
            super("Mon premier prog"); 
            setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);          
        } 
     
        /* --- Accessors --- */ 
     
        /** 
         * Accesseur en lecture sur la partie du bas : PartieDuBas. 
         * 
         * @return L'objet PartieDusBas de la fenetre. 
         */ 
        public PartieDuBas getPartieDuBas(){return partieDuBas;}
     
     
     
        /* --- Methods statiques --- */ 
     
        /** 
         * Permet de récupérer la fenêtre, au premier appel crée celle-ci, sinon 
         * retourne elle-meme. 
         * @return La fenetre Principale : MaFrame. 
         */ 
        public static MaFrame getMaFrame() { 
            if (maFrame == null) { 
                maFrame = new MaFrame(); 
            } 
            return maFrame; 
        } 
     
        /** --- Methodes --- */ 
     
        /** 
         * Initialise les menu, le contenu de la fenetre... 
         */ 
        public void init(){ 
            getContentPane().setBackground(new Color(255,255,255)); //couleur de font de la JFrame
            menuFenetre = new MenuFenetre(); 
            setJMenuBar(menuFenetre); //on insére les Menus
     
            JSplitPane panelHorizontal = new JSplitPane(JSplitPane.VERTICAL_SPLIT);
            JSplitPane panelBas = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT);
     
            panelHaut = new Haut();
            partieDuBas = new PartieDuBas();
            panelDroite = new Droite();
     
            panelHorizontal.setResizeWeight(0.7);// dimensionement du JSlpitPane Horizontale
            panelBas.setResizeWeight(0.5);// dimensionement du JSlpitPane Verticale
     
            panelHorizontal.setLeftComponent(panelHaut);
            panelHorizontal.setRightComponent(panelBas);
            panelBas.setLeftComponent(partieDuBas);
            panelBas.setRightComponent(panelDroite);
     
            getContentPane().setLayout(new BorderLayout()); 
            getContentPane().add(panelHorizontal,BorderLayout.CENTER);  
        }    
    }

  14. #14
    Membre régulier
    Profil pro
    Inscrit en
    Août 2004
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 85
    Points : 102
    Points
    102
    Par défaut
    Salut,

    dans les classes qui étendent JInternalFrame (genre Haut), tu remplaces tous les setLayout par des getContentPane().setLayout, comme tu fais dans ta frame.

  15. #15
    Membre habitué Avatar de pingoui
    Homme Profil pro
    Activité professionnelle sans liens avec le developpement
    Inscrit en
    Juillet 2004
    Messages
    582
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Activité professionnelle sans liens avec le developpement
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2004
    Messages : 582
    Points : 185
    Points
    185
    Par défaut
    cool il n'y a plus d'erreur !

    Par contre, le résultat bof....

    Plus de compartiment ! JSplitPane
    J'ai une fenetre avec le menu et c'est tout.... le reste est vide !

    pour info:
    Haut.java
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    public class Haut extends JInternalFrame {  
     
    	JLabel lab1 = new JLabel("Haut"); // insertion de texte
     
     
        public Haut(){
     
          getContentPane().setLayout(new BorderLayout());
          getContentPane(). setBackground(new java.awt.Color(255,255,255));
          getContentPane(). add(lab1,BorderLayout.NORTH); 
     
        } 
    }
    code identique pour Droite.java

    PartieDuBas.java
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    public class PartieDuBas extends JInternalFrame {
     
    	   private String file;
    	   private String nomFichierOuvert;
    	   private JTabbedPane tabbedPane;
    	   public static String fichierActif;
    	   private HashMap maHashMap;
    	   private Table tableau;
     
    	   public PartieDuBas() { 
    	   	   getContentPane().setLayout(new BorderLayout()); 
    	       tabbedPane = new JTabbedPane(); 
    	       getContentPane().add (tabbedPane,BorderLayout.CENTER);// ajout du Tabbed Pane
    	       maHashMap  = new HashMap();
    	   }
     
     
    	    public void ajoutTabbed(String file, String nomFichierOuvert){ 
    	         tableau = new Table(file);//ajout du JTable 
    	         tabbedPane.add(nomFichierOuvert, tableau);
    	         maHashMap.put(nomFichierOuvert, file);
     
    	   } 
     
    		public Table getTable() { 
    		    return tableau; 
    		   } 
     
    	    public String getActiveFilePath() { 
    	    	String fichierActif = (String) maHashMap.get(tabbedPane.getTitleAt(tabbedPane.getSelectedIndex()));// je récupére le path du fichier actif
    	    	return fichierActif;
    	    	} 
    	}

  16. #16
    Membre actif
    Inscrit en
    Avril 2004
    Messages
    238
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 238
    Points : 265
    Points
    265
    Par défaut
    Normalement tu dois avoir les icones que tu voulais pour fermer ...
    Mais c'est clair que c'est pas la meme chose que les JSplitPane.
    A toi de voir ce qui te convient le mieux
    "Quand le sage montre la lune,
    L'idiot regarde le doigt."

  17. #17
    Membre habitué Avatar de pingoui
    Homme Profil pro
    Activité professionnelle sans liens avec le developpement
    Inscrit en
    Juillet 2004
    Messages
    582
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Activité professionnelle sans liens avec le developpement
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2004
    Messages : 582
    Points : 185
    Points
    185
    Par défaut
    je ne peux pas insérer les InternalFrame dans le JSplitPane ?

    Mon but étant toujours d'avoir un IHM compartimenté en trois
    Chaque compartiment peut être agrandit (totalité de la fenêtre) ou reduit (emplacement d'origine) !

    :

  18. #18
    Membre régulier
    Profil pro
    Inscrit en
    Août 2004
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 85
    Points : 102
    Points
    102
    Par défaut
    Non, les JInternalFrame sont faites pour être insérées dans des JDektopPane.
    Donc le mieux est de créer un JDesktopPane que tu ajoutes à ta fenêtre principale. Ensuite tu paramètres son layout pour compartimenter comme tu veux, et après tu ajoutes les JInternalFrame au JDesktopPane.

  19. #19
    Membre habitué Avatar de pingoui
    Homme Profil pro
    Activité professionnelle sans liens avec le developpement
    Inscrit en
    Juillet 2004
    Messages
    582
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Activité professionnelle sans liens avec le developpement
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2004
    Messages : 582
    Points : 185
    Points
    185
    Par défaut
    peux tu me donner un exemple pour arriver au même résultat qu'avec mes JSplitPane

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
     
    public class MaFrame extends JFrame{ 
     
        /** --- Attributs statiques --- */ 
     
        /** L'instance de la fenetre elle meme */ 
        private static MaFrame maFrame;
     
        /* --- Attributs --- */ 
     
        /** Les panels pour le JSplitPane*/
        private JPanel panelHaut, panelBas, panelGauche, panelDroite;
     
        /** Le panel de la partie du bas. */ 
        private PartieDuBas partieDuBas; 
     
        /** Le menu de la fenetre. */ 
        private MenuFenetre menuFenetre; 
     
     
        /* --- Constructors --- */ 
     
        /** 
         * Crée une nouvelle instance de la fenetre. 
         */ 
        private MaFrame(){ 
            super("Mon premier prog"); 
            setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);          
        } 
     
        /* --- Accessors --- */ 
     
        /** 
         * Accesseur en lecture sur la partie du bas : PartieDuBas. 
         * 
         * @return L'objet PartieDusBas de la fenetre. 
         */ 
        public PartieDuBas getPartieDuBas(){return partieDuBas;}
     
     
     
        /* --- Methods statiques --- */ 
     
        /** 
         * Permet de récupérer la fenêtre, au premier appel crée celle-ci, sinon 
         * retourne elle-meme. 
         * @return La fenetre Principale : MaFrame. 
         */ 
        public static MaFrame getMaFrame() { 
            if (maFrame == null) { 
                maFrame = new MaFrame(); 
            } 
            return maFrame; 
        } 
     
        /** --- Methodes --- */ 
     
        /** 
         * Initialise les menu, le contenu de la fenetre... 
         */ 
        public void init(){ 
            getContentPane().setBackground(new Color(255,255,255)); //couleur de font de la JFrame
            menuFenetre = new MenuFenetre(); 
            setJMenuBar(menuFenetre); //on insére les Menus
     
            JSplitPane panelHorizontal = new JSplitPane(JSplitPane.VERTICAL_SPLIT);
            JSplitPane panelBas = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT);
     
            panelHaut = new Haut();
            partieDuBas = new PartieDuBas();
            panelDroite = new Droite();
     
            panelHorizontal.setResizeWeight(0.7);// dimensionement du JSlpitPane Horizontale
            panelBas.setResizeWeight(0.5);// dimensionement du JSlpitPane Verticale
     
            panelHorizontal.setLeftComponent(panelHaut);
            panelHorizontal.setRightComponent(panelBas);
            panelBas.setLeftComponent(partieDuBas);
            panelBas.setRightComponent(panelDroite);
     
            getContentPane().setLayout(new BorderLayout()); 
            getContentPane().add(panelHorizontal,BorderLayout.CENTER);  
        }    
    }
    merci

  20. #20
    Membre régulier
    Profil pro
    Inscrit en
    Août 2004
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 85
    Points : 102
    Points
    102
    Par défaut
    Bon, dsl mais ça va être chaud pour cette aprèm, je regarde ça ce soir et je t'envoie un bout de code demain si personne ne t'en envoie avant.

    @+

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 4 1234 DernièreDernière

Discussions similaires

  1. [Débutant] Problème de variables
    Par bonnefr dans le forum SWT/JFace
    Réponses: 9
    Dernier message: 12/05/2004, 17h41
  2. Réponses: 2
    Dernier message: 28/04/2004, 11h25
  3. [Débutant] Problème de déconnexion d'une page JSP
    Par amal9 dans le forum Servlets/JSP
    Réponses: 12
    Dernier message: 22/01/2004, 13h40
  4. [débutant] Problèmes avec CRegKey
    Par Pedro dans le forum MFC
    Réponses: 4
    Dernier message: 10/11/2003, 15h28
  5. Réponses: 11
    Dernier message: 02/09/2003, 14h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo