Bom, e negócio é o seguinte:
to precisando de reconhecer um objeto em uma JTree quando o usuário dá dois cliques com o mouse na arvore. Quando ele der dois cliques o evento mouseClick da arvore deve verificar se aquele elemento q ele deu dois cliques é de um determinado objeto, neste caso (código abaixo), objeto Pessoa.
segue código abaixo:
public class Pessoa {
String nome;
Pessoa(String _nome) {
nome = _nome;
}
public String toString() {
return this.nome;
}
}
public class Arvore extends JPanel {
private JScrollPane scrollTree;
private JTree arvore = new JTree();
private DefaultMutableTreeNode root = new DefaultMutableTreeNode("root");
private DefaultTreeModel model;
private DefaultMutableTreeNode Node1;
private DefaultMutableTreeNode Node2;
private DefaultMutableTreeNode Node3;
public Arvore() {
this.setLayout( null );
this.setSize(new Dimension(718, 178));
Node1 = new DefaultMutableTreeNode("Nodo 1");
Node2 = new DefaultMutableTreeNode("Nodo 2");
Node3 = new DefaultMutableTreeNode("Nodo 3");
for(int i=0 ; i<3 ; ++i){
Pessoa pessoa = new Pessoa("Renato");
DefaultMutableTreeNode tempNode = new DefaultMutableTreeNode(pessoa);
Node1.add(tempNode);
}
for(int i=0 ; i<3 ; ++i){
Pessoa pessoa = new Pessoa("Renato");
DefaultMutableTreeNode tempNode = new DefaultMutableTreeNode(pessoa);
Node2.add(tempNode);
}
for(int i=0 ; i<3 ; ++i){
Pessoa pessoa = new Pessoa("Renato");
DefaultMutableTreeNode tempNode = new DefaultMutableTreeNode(pessoa);
Node3.add(tempNode);
}
root.add(Node1);
root.add(Node2);
root.add(Node3);
model = new DefaultTreeModel(root);
arvore = new JTree(model);
arvore.setRootVisible(false);
arvore.setShowsRootHandles(true);
arvore.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
arvore_mouseClicked(e);
}
});
scrollTree = new JScrollPane(arvore);
scrollTree.setBounds(5,5,710,164);
this.add(scrollTree);
}
private void arvore_mouseClicked(MouseEvent e) {
if (e.getClickCount()>1){
JOptionPane.showMessageDialog(null, "Deu dois cliques");
if ((((DefaultMutableTreeNode)e.getSource()).getUserObject() instanceof Pessoa))
JOptionPane.showMessageDialog(null, " clicou em um objeto do tipo Pessoa");
}
}
public static void main(String[] args){
JFrame frame = new JFrame();
Arvore arv = new Arvore();
frame.getContentPane().add(arv);
frame.setSize(800,300);
frame.show();
}
}
if ((((DefaultMutableTreeNode)e.getSource()).getUserObject() instanceof Pessoa))
vou deixar o codigo pra quem puder ajudar...
vlw
obrigado!