2010-03-29 2 views
1

Après quelques conseils sur l'utilisation de jpanel - je suis nouveau sur java et je joue avec les éléments de l'interface graphique. Fondamentalement, ce que je suis curieux de savoir, c'est si je peux configurer un Jpanel dans une classe, puis ajouter des labels, etc., à ce conteneur, mais d'une autre classe.Mise à jour du Jpanel d'une classe

Est-ce possible? ou dois-je mettre l'ensemble de l'interface graphique dans une classe, mais je suppose que j'aurais le même problème, si je voulais mettre à jour les champs que j'avais mis en place dans la classe principale d'une autre classe? Excuses Je n'ai pas vraiment de code utile pour faire la démonstration ici - j'essaie juste de faire avancer l'idée, de travailler si c'est possible avant d'aller de l'avant. Et je ne suis même pas sûr que ce soit possible. Tout avis serait grandement apprécié.

Merci

Répondre

3

Tant que vous avez une référence à la JPanel, vous pouvez ajouter ce que vous voulez GUI-élément, en appelant add(JComponent comp) sur le JPanel.

Ainsi, vous pouvez faire quelque chose comme ceci:

class Panel extends JPanel{ 

    ...  

} 

class Main{ 

    public Main(JPanel thePanel){ 
     thePanel.add(new JButton("Hello")); 
    } 
} 

était ce que vous cherchez?

Vous pouvez également mettre à jour les champs ajoutés au panneau d'une autre classe, si vous avez configuré une méthode d'accès public, dans la classe. Donc, dans votre panel classe, vous avez une méthode:

public JButton getButton(){ 
    return button; 
} 

Ensuite, vous pouvez accéder au bouton de quelque classe avec une référence à la classe de votre panneau, comme celui-ci:

panel.getButton().setText("Some text"); 

Notez que le bouton pourrait tout aussi bien être public, alors vous pouvez simplement appeler la méthode directement: panel.button.setText("Some text"); mais ce n'est pas considéré comme un bon code, car il viole certaines bonnes pratiques OOP générales, pas pertinent de mentionner ici.

+0

Salut, je vais essayer - merci – ivor