Charger un JPanel externe dans une JFrame Netbeans

aezaerth Messages postés 8 Date d'inscription samedi 8 mai 2010 Statut Membre Dernière intervention 30 septembre 2011 - 30 sept. 2011 à 18:52
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 - 1 oct. 2011 à 19:58
Bonjour, je sais que la question à déjà été abordée mais aucun post (même ceux sur d'autres sites) ne répond à cette manipulation.

Pour illustrer et centrer ma question, voici le contexte:
DÉCLARATION DES ÉLÉMENTS

(Création d'une)
JFrame -> (s’appelant)frameNetbeans
(Qui contient)
> JButton -> boutonAfficher
> JPanel -> panelDuJFrame

Classe java extends JPanel -> panelSourceExterne
> Plusieurs composants Swing.

J'ai d'abord et naïvement fait dans la JFrame:
private void boutonAfficherActionPerformed(java.awt.event.ActionEvent evt) {
    panelDuJFrame = new panelSourceExterne();
}


De là s'en est suivi une série d'arrangements à coup de
this.repaint(); .validate();

D'une déclaration "plus propre":
panelSouceExterne panel = new panelSourceExterne();
panelDuJFrame = panel;


Jusqu’à faire une autre classe java qui prend les différentes parties en arguments. Rien n'y fait..
Qu'ai-je donc loupé de si "évident"?

Les post qui se rapprochaient le plus de ma question était celui-là et celui-ci, mais personne n'a suivi.

Si vous avez besoin d'explications plus claire ou des bouts de code, je suis à vous! Merci pour vos explications ou vos idées!

Æzaerth ~ Smile

2 réponses

cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 367
1 oct. 2011 à 19:58
Bonjour,

Ta question n'est pas très claire, peux tu préciser ?

Si ton problème est que lorsque tu ajoutes un JPanel à l'aide d'un bouton dans ta JFrame, celui ci n'apparait pas, il faut faire ceci :

private void boutonAfficherActionPerformed(java.awt.event.ActionEvent evt) {
/* Ajout du panel dans la frame (préciser le layout ou faire un setBounds)*/
frame.add(new panelSourceExterne());

/* Indique qu'il faut recharger les composants de la fenetre*/
frame.getContentPane().validate();

/* Indique qu'il faut redessiner la fenetre*/
frame.repaint();
}
0
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 367
1 oct. 2011 à 19:58
Je recommence en utilisant les balises (désolé pour le message précédent ;

private void boutonAfficherActionPerformed(java.awt.event.ActionEvent evt) { 
/* Ajout du panel dans la frame (préciser le layout ou faire un setBounds)*/ 
frame.add(new panelSourceExterne()); 

/* Indique qu'il faut recharger les composants de la fenetre*/ 
frame.getContentPane().validate(); 

/* Indique qu'il faut redessiner la fenetre*/ 
frame.repaint(); 
}
0