Probléme d'un JPanel
amani
-
amani -
amani -
Bonjour,
J'ai construit une fenêtre "Frame"qui contient des éléments définit dans un JPanel
public class Frame extends JFrame {
public JPanel container = new JPanel();
public Frame(){
// j'ai ajouté touts les composant dans le panel "container"
}
}
j'ai aucun soucis avec cette fenêtre, mais lorsque j'ai voulue l'intégrer dans une autre fenêtre Frame2 une exception se produit !!
public class Frame2 extends JFrame{
public Frame pan; // j'ai importer l'autre fenêtre "Frame"
private JPanel container = new JPanel();
public Frame2(){
container.add(pan); //ligne 16
this.setContentPane(container);
this.setVisible(true);
}
}
voilà l'exception:
Exception in thread "main" java.lang.NullPointerException
at java.awt.Container.addImpl(Unknown Source)
at java.awt.Container.add(Unknown Source)
at tn.sr.testframework.Frame2.<init>(Frame2.java:16)
at tn.sr.testframework.main.main(main.java:10)
J'ai construit une fenêtre "Frame"qui contient des éléments définit dans un JPanel
public class Frame extends JFrame {
public JPanel container = new JPanel();
public Frame(){
// j'ai ajouté touts les composant dans le panel "container"
}
}
j'ai aucun soucis avec cette fenêtre, mais lorsque j'ai voulue l'intégrer dans une autre fenêtre Frame2 une exception se produit !!
public class Frame2 extends JFrame{
public Frame pan; // j'ai importer l'autre fenêtre "Frame"
private JPanel container = new JPanel();
public Frame2(){
container.add(pan); //ligne 16
this.setContentPane(container);
this.setVisible(true);
}
}
voilà l'exception:
Exception in thread "main" java.lang.NullPointerException
at java.awt.Container.addImpl(Unknown Source)
at java.awt.Container.add(Unknown Source)
at tn.sr.testframework.Frame2.<init>(Frame2.java:16)
at tn.sr.testframework.main.main(main.java:10)
1 réponse
public Frame pan; // j'ai importer l'autre fenêtre "Frame"Ici il n'y a rien d'importé du tout !
pan n'est pas initialisée, elle vaut donc null, d'où ton exception lorsque tu fais add(pan)
Une idée, mais il faudrait adapter selon le reste du code :
public Frame2(Frame frame)
{
pan = frame;
container.add(pan);
setContentPane(container);
setVisible(true);
}
Frame2 fenetre = new Frame2(Frame);
mais Frame n'est pas définit comme type j'ai essayé ensuite
Frame2 fenetre = new Frame2(null);
normalement le null n'as aucun effet, mais l'exception reste la meme
Exemple :
public static void main(String...args) { Frame frame = new Frame(); Frame2 frame2 = new Frame2(frame); }Et si tu veux créer la deuxième frame à l'intérieur de la première, tu peux faire :
public Frame() { Frame2 frame2 = new Frame2(this); }Frame frame= new Frame()
dans main, il vas afficher le premier frame mais moi je veux juste l'afficher dans le deuxième non pas indépendants.
la deuxième méthode
Frame frame2= new Frame(this) entaine des exception lorsque j'effectu des clikck sur les boutons car les lsitener sont dénits ds des classes apés le constructeur de frame, peut être que ses actions sont invisible par rapport au deuxième frame?!
Ensuite, je ne suis pas sûr de comprendre ce que tu veux faire avec ces deux fenêtres, est-ce que tu veux afficher l'une dans l'autre ? Dans ce cas tu n'as pas compris à quoi servait une JFrame, et il faudrait plutôt remplacer la JFrame qui doit être inclus dans l'autre, par un JPanel...
Comme d'habitude, plus ton problème sera précis, plus les réponses que je te donnerai seront proche de ce que tu veux, mais pour l'instant c'est trop vague pour corriger tous tes bugs !