Pessoal, boa tarde.
estou aprendendo a mexer com Jtree, e segui boa parte do que está aqui: http://www.guj.com.br/java/37821-como-usar-jtree
Agora quero implementar uma busca, que encontre um determinado ‘node’ pelo seu nome. (pelo nome do livro, ou autor).
Pesquisando, encontrei algo como isso:
public void pesquisaLivro(ActionEvent evt){
String nmLivro = txtLivro.getText().trim();
DefaultMutableTreeNode node = null;
DefaultMutableTreeNode m_rootNode = (DefaultMutableTreeNode) treeLivros.getModel().getRoot();
Enumeration e = m_rootNode.breadthFirstEnumeration();
while (e.hasMoreElements()) {
node = (DefaultMutableTreeNode) e.nextElement();
if (nmLivro.equals(node.getUserObject().toString())) {
JOptionPane.showMessageDialog(null, "achou");
}
}
}
Porém, não vai da certo… pois o meu TreeModel insere os nodes como objetos do tipo Livro ou autor, e não do tipo DefaultMutableTreeNode…
ou seja, o Enumeration só vem com a raiz do jTree.
o que eu faço?