Sélectionner un noeud dans un jTree
hayfa1200
Messages postés
101
Statut
Membre
-
hayfa1200 Messages postés 101 Statut Membre -
hayfa1200 Messages postés 101 Statut Membre -
Bonjour,
je suis novatrice en java,et je doit utiliser des jTrees,j'ai arrivé a créée en programmation un Jtree,mais je ne sais pas comment faire lorsque je sélectionne un noeud de la Tree une fenêtre s'ouvre,avec quel méthode je peut faire ça et merciiiiiiiiiiiiiiiiiiii si quelqu'un m'aide
voici mon code:
je suis novatrice en java,et je doit utiliser des jTrees,j'ai arrivé a créée en programmation un Jtree,mais je ne sais pas comment faire lorsque je sélectionne un noeud de la Tree une fenêtre s'ouvre,avec quel méthode je peut faire ça et merciiiiiiiiiiiiiiiiiiii si quelqu'un m'aide
voici mon code:
rootnode = new DefaultMutableTreeNode("Membres");
treeModel = new DefaultTreeModel(rootnode);
jTree1.setModel(treeModel);
ntemp = new DefaultMutableTreeNode("xxxxxxxxxxx");
rootnode.add(ntemp);
// Icon Render
DefaultTreeCellRenderer renderer = (DefaultTreeCellRenderer) jTree1.getCellRenderer();
renderer.setLeafIcon(subIcon);
renderer.setClosedIcon(closedIcon);
renderer.setOpenIcon(openIcon);
A voir également:
- Sélectionner un noeud dans un jTree
- Sélectionner du texte dans un pdf - Guide
- Comment sélectionner un message sur whatsapp pour y répondre - Guide
- Comment selectionner toutes les photos dans google photo - Guide
- Vba excel sélectionner une plage de cellules variable ✓ - Forum VB / VBA
- Excel sélectionner toutes les lignes contenant un mot ✓ - Forum Excel
2 réponses
Salut!
Tu dois ajouter un TreeSelectionListener à ton arbre. C'est la méthode "valueChanged()" qui est invoquée chaque fois que la sélection change dans l'arbre et c'est dans cette méthode que tu peux récupérer le noeud sélectionné pour effectuer le traitement que tu désires.
;-)
Tu dois ajouter un TreeSelectionListener à ton arbre. C'est la méthode "valueChanged()" qui est invoquée chaque fois que la sélection change dans l'arbre et c'est dans cette méthode que tu peux récupérer le noeud sélectionné pour effectuer le traitement que tu désires.
package hacktrack;
import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.Dimension;
import javax.swing.BorderFactory;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTree;
import javax.swing.event.TreeSelectionEvent;
import javax.swing.event.TreeSelectionListener;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.DefaultTreeModel;
import javax.swing.tree.TreeModel;
public class JTreeNodeSelector extends JFrame implements TreeSelectionListener {
private DefaultMutableTreeNode rootnode;
private TreeModel treeModel;
private JTree jTree1;
private DefaultMutableTreeNode ntemp;
private JTextArea textArea;
public JTreeNodeSelector() {
super("Sélection d'un noeud dans un JTree - Démo");
initialize();
}
private void initialize() {
setDefaultCloseOperation(EXIT_ON_CLOSE);
Container c = getContentPane();
c.setLayout(new BorderLayout());
jTree1 = new JTree();
jTree1.setPreferredSize(new Dimension(320,200));
rootnode = new DefaultMutableTreeNode("Membres");
treeModel = new DefaultTreeModel(rootnode);
jTree1.setModel(treeModel);
jTree1.addTreeSelectionListener(this);
ntemp = new DefaultMutableTreeNode("Noeud 000");
rootnode.add(ntemp);
jTree1.expandRow(0);
c.add(jTree1, BorderLayout.CENTER);
textArea = new JTextArea();
textArea.setAutoscrolls(true);
JScrollPane jsp = new JScrollPane(textArea);
jsp.setPreferredSize(new Dimension(320,100));
jsp.setBorder(BorderFactory.createTitledBorder("Noeuds sélectionnés"));
c.add(jsp,BorderLayout.SOUTH);
}
@Override
public void valueChanged(TreeSelectionEvent e) {
JTree tree = (JTree) e.getSource();
DefaultMutableTreeNode selectedNode = (DefaultMutableTreeNode) tree
.getLastSelectedPathComponent();
if (selectedNode == null)
return;
Object nodeInfo = selectedNode.getUserObject();
if(nodeInfo instanceof String)
textArea.append((String)nodeInfo+"\n\r");
}
public static void main(String[] args) {
JTreeNodeSelector demo = new JTreeNodeSelector();
demo.pack();
demo.setVisible(true);
}
}
;-)