【问题标题】:Highlight the searched node in tree in java swing在java swing中突出显示树中搜索到的节点
【发布时间】:2012-09-09 12:29:16
【问题描述】:
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");
        }
    }
});

searchNode() 的代码是

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

我已经写了这段代码顶部搜索树中的一个节点?但是我无法用蓝色突出显示找到的节点。你能提供一个解决方案吗?

【问题讨论】:

  • 这个我没试过,但是你试过在树上打电话repaint吗??
  • 对不起,您“无法理解”是什么意思? m_tree.repaint() 不工作吗??

标签: java swing jtree renderer treemodel


【解决方案1】:

TreeCellRenderer 的实现可以指定所需的颜色。请参阅Customizing a Tree's Display 和引用的示例here

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-07
    • 1970-01-01
    • 2011-03-15
    • 2012-08-04
    • 2011-12-20
    • 1970-01-01
    相关资源
    最近更新 更多