2012-06-13 2 views
-1

Salut J'essaie d'ajouter un objet par exemple un JLabel d'une classe principale à une classe secondaire qui hérite des attributs d'un JPanel.J'ai créé un exemple de base qui montre ce que j'étais en essayant de le faire, mais il ne marche pas work.Here est mon code:Ajouter un objet à un JPanel de la classe externe

public class main extends JFrame{ 


public main(){ 
    this.setVisible(true); 
    this.setSize(600, 600); 
    panel nou = new panel(new JLabel("a mers")); 
} 
public static void main (String[] args){ 
    new main(); 
} 

}

public class panel extends JPanel{ 

    public panel(JLabel nou){ 
     this.add(nou); 
    } 
} 

mon code d'origine doit ajouter des images à partir d'une classe externe et j'ai essayé la même aproche mais Ne pas travailler.Comment puis-je réaliser cela?

EDIT: Ceci est juste un exemple que je dois ajouter ce composant à partir d'une classe externe

+0

1) N'ouvrez pas le panneau ou le cadre, gardez simplement une référence à l'un de chaque. 2) Appelez toujours 'pack()' sur le conteneur de niveau supérieur (TLC) 3) Appelez 'setVisible' sur le TLC en dernier. 4) Les interfaces graphiques Swing doivent être créées et modifiées sur l'EDT. 5) Il y a plus de 'mauvaises' lignes dans le code affiché, que correctes. –

Répondre

1

Utilisez Container#add(Component). Vous pouvez l'utiliser de la même manière dans le constructeur que vous pouvez en dehors de celui-ci (sans cela).

nou.add(new JLabel("trees")); 
+0

Ceci est juste un exemple J'ai besoin d'ajouter le composant d'une classe externe –

+0

Pouvez-vous éventuellement reformuler votre question? Je ne suis pas sûr si vous demandez comment ajouter des composants au JPanel en dehors de son constructeur, ou si vous demandez comment ajouter au JFrame en dehors de son constructeur, ou si vous demandez autre chose tout à fait. – Vulcan

+0

J'ai deux clases dans mon projet original l'un d'entre eux étend un JPanel et je dois ajouter de l'autre classe un JLabel dans cela JPanel –

1

Vous faites l'instance JPanel, mais pas ajouter à la JFrame.

Veuillez également utiliser la convention de Capital Camel Case pour les noms de classe.

Questions connexes