我有一个 JTree,其中填充了一些(自定义)节点。我有一个类是 DefaultTreeCellRenderer 的子类,使用“MyTreeCellRenderer”我可以为树中的每个节点设置工具提示。它工作正常:填充了 JTree,设置了单元格渲染器,所有添加的节点都有工具提示。 问题是我不知道如何更改已填充树中某些节点的工具提示...该怎么做?有没有办法为 JTree 中的一个节点“重新创建”单元格渲染器?
最佳答案
我做到了!我没有使用扩展的 CellRenderer,而是使用树的“getTooltipText”方法(我扩展了树)。这样我就可以根据鼠标指针悬停在上面的对象来控制工具提示的文本。
@Override
public String getToolTipText(MouseEvent evt) {
if (getRowForLocation(evt.getX(), evt.getY()) == -1)
return null;
TreePath curPath = getPathForLocation(evt.getX(), evt.getY());
TreeNode node = (TreeNode)curPath.getLastPathComponent();
if(something)
return "Empty";
if(something_else)
return "Not empty";
return null;
}
在工具提示呈现之前,您还需要将您的树告知工具提示管理器:
ToolTipManager.sharedInstance().registerComponent(myTree);
关于java - JTree 节点的可变工具提示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11082092/