Bonjour,
j'ai donc un applet qui fait appel à une classe Menu (afin de connaitre les JPanel à afficher) dont les panel sont créé dans une classe SousMenu.
j'ai un souci avec un actionPerformed (contenu dans un jpanel1) qui appel une méthode qui modifie un JLabel et l'ajoute a un jpanel2.
Je ne sait comment déclarer dans la méthode du JLabel le nom du jpanel2, étant donné que si je l'appel par la méthode renvoyant le jpanel2 cela ne fait que créer un nouveau jpanel me semble t'il.
bref voici mon code de SousMenu(en version simplifiée), qui ne m'affiche rien dans Membre()
je sait pas s'il existe une fonction permettant de recuperer une instance d'une classe par son nom(il me semblerait que forName ne puisse qu'uniquement créer des instance d'une classe)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67 import java.awt.Dimension; import java.awt.GridBagLayout; import javax.swing.JButton; import javax.swing.JLabel; import javax.swing.JPanel; public class SousMenu { //premier onglet comportant le bouton avec actionperformed public static JPanel Groupe(){ final JPanel panelgroupe=new JPanel(); panelgroupe.setLayout(new GridBagLayout()); panelgroupe.setPreferredSize(new Dimension(200, 101)); JLabel texte=new JLabel(); texte.setPreferredSize(new Dimension(400, 800)); JButton bouton = new JButton(); panelgroupe.add(bouton); bouton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent e) { afficherInMembre(Membre()); /*ici j'ai donc besoin de renvoyer le panel de Membre() en l'appelant par son nom, Membre() ne fonctionne pas, Groupe() non plus, mais panelgroupe oui */ } }); return panelgroupe; }; //second onglet qui devrit comporter l'affichage public static JPanel Membre(){ JPanel panelmembre=new JPanel(); panelmembre.setLayout(new GridBagLayout()); panelmembre.setPreferredSize(new Dimension(400, 800)); return panelmembre; } public static JLabel afficherInMembre( JPanel panel) { JLabel texte=new JLabel(); texte.setPreferredSize(new Dimension(400, 800)); texte.setText("test"); StringBuilder text=new StringBuilder("<html>"); text.append("Ce qui devrait s'afficher <br>"); text.append("</html>"); texte.setText(text.toString()); panel.add(texte,null); return texte; } }
j'imagine par ailleur qu'un repaint ne fera que réinitialiser la classe qui affiche mes panel.
enfin bref j'ai essayer pleins de choses sans savoir trop où aller, je suis en manque de direction .
j'espère que c'est un truc tout bête et que je suis passé à coté.
merci.
Partager