Sélectionner un noeud dans un jTree

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:

  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);

2 réponses

Utilisateur anonyme
 
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.

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);

	}

}



;-)
0
hayfa1200 Messages postés 101 Statut Membre 1
 
merci HackTrack pour l'aide :D
0