在JavaSwing中突出显示树中搜索的节点
searchNode()的代码为在JavaSwing中突出显示树中搜索的节点,java,swing,jtree,renderer,treemodel,Java,Swing,Jtree,Renderer,Treemodel,searchNode()的代码为 我写了这段代码在树中搜索一个节点?但我无法用蓝色突出显示找到的节点。您能提供解决方案吗?您的TreeCellRenderer实现可以指定所需的颜色。请参阅和引用的示例。我没有尝试过这个,但您是否尝试过在树上调用重新绘制?无法m_tree.repaint()工作?? m_searchButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent
我写了这段代码在树中搜索一个节点?但我无法用蓝色突出显示找到的节点。您能提供解决方案吗?您的
TreeCellRenderer
实现可以指定所需的颜色。请参阅和引用的示例。我没有尝试过这个,但您是否尝试过在树上调用重新绘制
?无法m_tree.repaint()
工作??
m_searchButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
DefaultMutableTreeNode node = searchNode(m_searchText.getText());
if (node != null) {
TreeNode[] nodes = m_model.getPathToRoot(node);
TreePath path = new TreePath(nodes);
m_tree.scrollPathToVisible(path);
m_tree.setSelectionPath(path);
} else {
System.out.println("Node with string " + m_searchText.getText() + " not found");
}
}
});
public DefaultMutableTreeNode searchNode(String nodeStr) {
DefaultMutableTreeNode node = null;
Enumeration e = m_rootNode.breadthFirstEnumeration();
while (e.hasMoreElements()) {
node = (DefaultMutableTreeNode) e.nextElement();
if (nodeStr.equals(node.getUserObject().toString())) {
return node;
}
}
return null;
}