Draw2d:如何让工具提示停留更长时间

Draw2d: How to get a tooltip to stay longer

我有一个使用 Figure.setToolTip() 创建工具提示的程序。除了工具提示在几秒钟后消失外,一切都很好。工具提示可以包含很多信息,我希望工具提示停留更长的时间(甚至无限期地,直到光标退出图形)。

我没有在 ToolTipHelper class 中找到任何处理此问题的方法或字段。这甚至可以做到吗?

我能想到的唯一其他解决方法是在 mouseEnter() 上简单地显示一个带有工具提示的图形,并在 mouseExited() 上隐藏它。但我更愿意使用内置的工具提示功能。

我最终使用了 PopUpHelper,它是 ToolTipHelper 的超级 class。我只是在图中添加了一个 MouseMotionListener,并在 mouseEntered(MouseEvent arg0) 和 mouseExited(MouseEvent arg0) 上调用了 tooltipHelper.show() 和 tooltipHelper.hide()。

通过在 PopUpHelper 中调用 getLightweightSystem().setContents(IFigure) 和 setShellBounds(int,int,int,int),我可以确定要显示的内容以及显示提示的位置。

优点是只要我的光标在图中,提示就会一直存在。无论 canvas 的比例如何,工具提示的大小也是相同的(这阻止了我简单地将图形添加到 canvas 并调用 setVisible() 和 setLocation())。

缺点是您必须自己完成大部分工作(ToolTipHelper 本来要做的工作)。这包括在一些不寻常的情况下隐藏工具提示(例如,在我的例子中,当鼠标仍在图上时切换选项卡)并将工具提示位置编码为不 运行 离开屏幕。