Bonsoir,
J'ai rencontré le probleme suivant:
j'utilise une classe qui affiche une fenetre contenant 2 Jpanel le 1er (à gauche) affiche un tree de neuds et le 2eme (à droite) contient une zonne de texte. quand je clique sur un noeud il y a un TreeSelectionListener qui s'active et affiche alors le contenu sur la zone de texte.
Tout ca marche bien, le probleme c'est que maintenant j'essaie d'appeler cette classe depuis une autre classe , qui contient une zone de texte. Donc j'appele la 1ere classe en lui passant comme parametre la zone de texte et je veux que lorsque je clique sur un neud dans le tree, non seulement que sont contenu s'affiche dans la 1ere zone de texte mais aussi dans la 2eme zone de texte. mais ca marche pas, car le compilateur ne veut meme pas accepter que j'utilise la zone de texte passée en parametre dans le TreeSelectionListener.
Voici le code pour plus de lumiere:
Merci pour votre aide et si vous avez besoin de plus d'eclaircisements je suis disponible.
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 public MibParser(String mibs, JTextField txt_oid) { // ........ ici il y a du code // Need to setup a listener for selection to display data: TreeSelectionListener listener = new TreeSelectionListener() { public void valueChanged(TreeSelectionEvent e ) { Object selected = e.getPath().getLastPathComponent(); if (selected instanceof NodeData) { Object obj = ((NodeData)selected).getUserObject(); if (obj instanceof MibNode) { text.setText("\n\n"+ ((MibNode)obj).toTagString() ); // ici ca marche :"text" est une zone de texte qui appartient à cette meme classe System.out.println("TreeSelectionListener appélé" + text.getText()); txt_oid.setText(text.getText()); // ici ca casse : "txt_oid" est la zone de texte passée en parametre. } } //else text.setText( "Selected: "+selected.getClass() ); } }; tree.tree.addTreeSelectionListener(listener); tree.tree.expandRow(0); }
Partager