Imbrication de JPanel / Appel entre classe
Bonsoir à toutes et tous,
Voila un petit moment que je vous lis et c'est aujourd'hui à mon tours de vous solliciter.
Je démarre la POO et j'ai une question sur les appels entre classes.
En l'occurence, je souhaiterai que ma Frame soit composée de plusieurs JPanel, dont un issu d'une autre classe.
Je tourne en rond depuis un moment. Si un œil extérieur pouvait m'indiquer où est-ce que cela coince je vous en serais reconnaissant.
Code:
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
| public class PanelPrincipal extends JPanel {
private JFrame fenetre;
private JPanel panelNord = null;
private PanelSecondaire panelCentre = null;
public PanelPrincipal() {
this.fenetre = new JFrame("Test application graphique JPanel impbriqués");
this.fenetre.addWindowListener (new WindowAdapter()
{ public void windowClosing(WindowEvent e){
System.exit(0);}
} );
Container container = this.fenetre.getContentPane();
BorderLayout disposition = new BorderLayout();
container.setLayout(disposition);
container.setPreferredSize(new java.awt.Dimension(800, 600));
fenetre.setSize(800, 600);
fenetre.setLocationRelativeTo(getParent());
container.add(getPanelNord(), BorderLayout.NORTH);
container.add(getPanelCentre(), BorderLayout.CENTER);
this.fenetre.pack();
this.fenetre.setVisible(true);
}
public JPanel getPanelNord() {
if(panelNord == null) {
panelNord = new JPanel();
panelNord.setBackground(Color.ORANGE);
}
return panelNord;
}
public PanelSecondaire getPanelCentre() {
if(panelCentre == null) {
panelCentre = new PanelSecondaire();
}
return panelCentre;
}
} |
Voila pour la classe contenant la Frame
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| public class PanelSecondaire extends JPanel {
private JPanel panelSecondaire = null;
public PanelSecondaire() {
getPanelSecondaire();
}
public JPanel getPanelSecondaire() {
if(panelSecondaire == null) {
panelSecondaire = new JPanel();
panelSecondaire.setBackground(Color.RED);
panelSecondaire.setSize(640,480);
}
return panelSecondaire;
}
} |
et voila pour la classe que je voudrai intégrer.
D'avance merci pour vos conseils avisés
Cordialement