riderfun
Messages postés98Date d'inscriptionjeudi 8 février 2007StatutMembreDernière intervention11 janvier 2010
-
23 févr. 2009 à 12:16
dvoraky
Messages postés744Date d'inscriptiondimanche 1 avril 2007StatutMembreDernière intervention 9 mai 2010
-
24 févr. 2009 à 14:47
Bonjour, en fait j'ai une petite question qui j'en suis sur est toute bête...
Voilà j'ai créé una JFrame ou il y a un JPanel jusque là tout vas bien!
pui je souhaiterai ajouter a ce JPanel un autre JPanel mais celui ci est une Classe que j'ai fais dérivée du JPanel et je n'arrive pas a l'afficher...voici mon code:
private JPanel getPnlAcceuil() {
if (pnlAcceuil == null) {
pnlAcceuil = new JPanel();
pnlAcceuil.setLayout(null);
pnlAcceuil.setBackground(Color.lightGray);
pnlAcceuil.add(getPnlConfig(), null);
pnlAcceuil.add(new CreateButton(), null);
pnlAcceuil.add(getBtnNewProfil(), null);
}
return pnlAcceuil;
}
public class CreateButton extends JPanel {
riderfun
Messages postés98Date d'inscriptionjeudi 8 février 2007StatutMembreDernière intervention11 janvier 2010 23 févr. 2009 à 14:19
Oui, le pnlAcceuil contient 3 Panel dont les 2 sont définis dans la même classe et je voudrais faire une classe "CreateButton" pour un traitement différent et surtout pour alléger le code.. et je l'ajoute comme pour les autres panel mais ça ne fonctionne pas...
private JPanel getPnlAcceuil() {
if (pnlAcceuil == null) {
pnlAcceuil = new JPanel();
pnlAcceuil.setLayout(null);
pnlAcceuil.setBackground(Color.lightGray);
pnlAcceuil.add(getPnlConfig(), null);
pnlAcceuil.add(new CreateButton(), null);
pnlAcceuil.add(getBtnNewProfil(), null);
}
return pnlAcceuil;
}
riderfun
Messages postés98Date d'inscriptionjeudi 8 février 2007StatutMembreDernière intervention11 janvier 2010 23 févr. 2009 à 14:22
et en fait à la place du createButton j'avais :
private JPanel getPnlProfils() {
if (pnlProfils == null) {
pnlProfils = new JPanel();
pnlProfils.setFont(new Font("Dialog", Font.PLAIN, 12));
pnlProfils.setLayout(new FlowLayout());
pnlProfils.setBorder(BorderFactory.createTitledBorder(BorderFactory
.createLineBorder(Color.MAGENTA), "Profils Disponibles"));
pnlProfils.setBounds(new Rectangle(3, 113, 538, 166));
}
return pnlProfils;
}
et cela fonctionnait très bien mais maintenant je voudrais l'externaliser...pour y ajouter des traitements
dvoraky
Messages postés744Date d'inscriptiondimanche 1 avril 2007StatutMembreDernière intervention 9 mai 20108 24 févr. 2009 à 14:47
Salut,
Attention aux accès aux paramètres d'une classe...
Les paramètres doivent être en private et tu fais des getters/setters.
Ca sera plus propre
Ceci dit, je ne trouve aucun intérêt de faire dériver ta classe CreateButton de JPanel si c'est pour rajouter un attribut JPanel à l'intérieur... Ne crois tu pas?
Donc dans ta classe CreateButton, tu fais comme dis cormandyr, tu mets bien le super() en première ligne de ton constructeur et ensuite tu rajoutes tes composants à ta classe CreateButton.
Comme ta classe CreateButton dérive de JPanel, elle se comporte de la même manière! Tu as donc accès aux méthodes add, setLayout...
<hr width="100%" size="2" />
C'est après des heures de codage que j'ai compris pourquoi les créateurs de Java ont choisi une tasse de café comme logo...