Выделите искомый узел в дереве в Java Swing

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

Я написал этот код для поиска узла в дереве? Но у меня возникли проблемы с выделением найденного узла синим цветом. Можете ли вы предоставить решение?


person Nikhil    schedule 17.09.2012    source источник
comment
Я не пробовал, но пробовали ли вы вызывать repaint на дереве??   -  person MadProgrammer    schedule 17.09.2012
comment
Извините, что вы имеете в виду, вы не можете получить это? m_tree.repaint() не работает??   -  person MadProgrammer    schedule 17.09.2012


Ответы (1)


Ваша реализация TreeCellRenderer может указать желаемый цвет. См. Настройка отображения дерева и приведенные примеры здесь.

person trashgod    schedule 17.09.2012