我有一个自定义的swing组件,该组件的实现类似于JTree。它具有一个ComponentUI,可使用CellRenderer渲染对象列表。现在,工具提示会正确显示每个渲染的单元格,但是并没有按照我的意愿跟踪鼠标。例如,如果我有这样布置的盒子;

[盒子A] [盒子B] [盒子C] [盒子D]

如果将鼠标拖动到这些框上,我将看到框A的工具提示,其中鼠标越过框A的边界。当我继续移动鼠标时,工具提示将不会跟踪指针。当我离开盒子时,工具提示会适当消失。当我越过方框B时,也会发生同样的事情。

我的猜测是,仅当getToolTipText(MouseEvent event)的内容更改时,工具提示才会更新视图。我想要的行为是让tooltip跟踪指针位置,而不管getToolTipText返回的内容如何。一个快速的技巧是根据对该方法的偶数/奇数调用来添加和删除空白区域。这可行,但是,这不是我应该做的方式。

我正在寻找一种解决此问题的优美的非hack方法。我希望有人知道某个奥秘标记,无论鼠标内容如何,​​该标记都会强制工具提示跟随鼠标。

最佳答案

在单元格渲染器中覆盖getToolTipLocation

09-16 00:32