[JTree] Rechercher et sélectionner un élément
Bonjour
Je cherche comment rechercher et sélectionner un élément dans un JTree à partir du code. En gros j'ai quelque chose dans ce genre :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| public DefaultMutableTreeNode getTreeNode()
{
DefaultMutableTreeNode tree = new DefaultMutableTreeNode(getName());
// children = ArrayList<Data>
for (int i = 0; i < children.size(); i++ )
tree.add(new DefaultMutableTreeNode(children.get(i)));
return tree;
}
public JTree getJTree()
{
JTree jtree = new JTree(getTreeNode());
return jtree;
} |
Ensuite dans ma fonction recherche, je récupère le "children.get(n)" qui correspond et le JTree, mais je ne trouve pas de fonction dans le JTree qui me permette de chercher ou au moins comparer les éléments du JTree avec l'élément que je récupère ...
J'ai essayer cette fonction :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| public void actionPerformed(ActionEvent e)
{
Data data = getElement(searchField.getText());
System.out.println(searchField.getText());
if(data != null)
{
System.out.println("Search");
int row = -1;
JTree tree = getTree();
for(int i = 0; i < tree.getRowCount(); i++)
{
if(((DefaultMutableTreeNode) tree.getComponent(i)).getUserObject().equals(data))
{
System.out.println("Find");
row = i;
break;
}
}
if(row != -1)
tree.setSelectionRow(row);
}
} |
Mais c'est juste de la merde, je peux déjà pas cast le (DefaultMutableTreeNode) tree.getComponent(i) alors bon, je doit pas avoir bien compris :s