Bonjour,
je souhaiterais afficher différents JPanel dans une JFrame.
Mes Jpanel sont dans des classes séparées, avec des constructeurs différents. Le tout contrôlé depuis ma classe MenuBar.
Ma JFrame dispose de plusieurs JMenu et suivant quel JMenuItem est cliqué, j'aimerais afficher un JPanel à la fois dans ma JFrame.
Pour le moment je n'y arrive pas...
voici le code de ma JFrame :
Code java : 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 public Home() { setSize( 600,600 ) ; setLocationRelativeTo(null); setResizable(false); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setContentPane(labelHome); labelHome.setLayout(new BorderLayout()); this.setJMenuBar(new BarreDeMenu()); this.setVisible(true); } public JLabel getLabelHome() { return labelHome; } public void setLabelHome(JLabel labelHome) { this.labelHome = labelHome; } public JPanel getPanelHome() { return panelHome; } public void setPanelHome(JPanel panelHome) { this.panelHome = panelHome; } }
Ici, une de mes classes qui extends de JPanel :
Code java : 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 public class Panel1 extends JPanel { private static ButtonGroup groupeCheckBox = new ButtonGroup(); private JRadioButton ajouter = new JRadioButton ("Ajouter"); private JRadioButton modifier = new JRadioButton ("Modifie"); private JRadioButton supprimer = new JRadioButton ("Supprimer"); public Panel1() { this.setLayout(new GridLayout(3, 1)); this.add(ajouter); this.setBorder(BorderFactory.createTitledBorder("Choix")); ajouter.setSelected(true); groupeCheckBox.add(ajouter); groupeCheckBox.add(modifier); groupeCheckBox.add(supprimer) this.add (ajouter); this.add (modifier); this.add (supprimer); } }
ET là, ma classe BarreDeMenu qui extends de JMenuBar et implements ActionListener, pour l'écoute de mes JMenuItem.
Code java : 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 public class BarreDeMenu extends JMenuBar implements ActionListener { public void actionPerformed(ActionEvent bouton) { if (bouton.getSource().equals(ajouter)) { home.getLabelHome().add(panel1 , BorderLayout.WEST); } if (bouton.getSource().equals(modifier)) { home.getLabelHome().add(panel2 , BorderLayout.WEST); } if (bouton.getSource().equals(supprimer)) { home.getLabelHome().add(panel3 , BorderLayout.WEST); } } }
Donc, ici j"instancie une seconde JFrame (Home) en plus de la 1ere...
Par contre, cette seconde JFrame (Home) a bien mon panel1 dedans.
Mais je veux uniquement le panel sélectionné dans cette unique JFrame.
Surtout ne pas pouvoir ré-instancier le même JPanel et détruire les anciens JPanel, et ne pas les masquer en les superposant.
Merci d'avance![]()
Partager