java - JTree 节点的可变工具提示

标签 java swing tooltip jtree renderer

我有一个 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/

相关文章:

java - 调用方法之前的 Java 泛型表示法是什么?

java - JPanel 和 BufferedImage

javascript - 设置 id 并将 CSS 类添加到 Poshy Tip tooltip div

java - 使用 zxing4processing 的 ClassNotFoundException,处理库

java - 通过字段 'springSecurityFilterChain' 表示的不满足的依赖关系

java - 获取从非泛型类型类扩展的类的泛型类型

java - 我如何通过将鼠标悬停在标签上来获取 JLabel 的文本(带有图标)来解释标签是什么?

java - 如何将循环值设置为文本字段?

javascript - 带悬停的 Jquery 工具提示

objective-c - 如何在cocoa中向Tooltip添加 Action 事件