Les composants dans un JPanel n'ont jamais de nom
bonjour
je suis face à un problème très étrange :
utilisant eclipse indigo SR2, j'ai créé une fenêtre via le concepteur graphique, avec des composants dedans.
par exemple j'ai un panel qui contient d'autres composants.
pour retrouver les composants de ce panel, j'ai créé une variable statique de type JPanel.
le problème c'est que si les composants semblent bien trouvés lors d'un foreach dans ce panel (je trouve le bon nombre d'éléments), les noms de ces composants sont tous "null"...
savez-vous comment récupérer leur nom?
un peu de code :
dans le constyructeur de la classe Fenetre, il y a entre autres ça :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
| JPanel panel_1 = new JPanel();
panel_1.setBounds(274, 70, 251, 121);
frame_1.getContentPane().add(panel_1);
panel_local = panel_1;
panel_local.setBorder(BorderFactory.createTitledBorder(
BorderFactory.createLineBorder(Color.BLACK),
"Vue de la base locale"));
panel_1.setLayout(null);
JLabel label = new JLabel("");
label.setBounds(125, 22, 0, 0);
panel_1.add(label); |
la variable panel_local est statique.
la classe qui lance le programme :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| public class Launcher {
/**
* @param args
* @throws Exception
*/
public static void main(String[] args) throws Exception {
Fenetre f = new Fenetre();
Component[] cps = f.panel_local.getComponents();
System.out.println("nbre elts : " + cps.length);
for (Component comp : cps) {
if (!(comp.getName() == null))
System.out.println("nom : " + comp);
}
}
} |
le system.out.println n'est jamais exécuté.
olivier