【发布时间】:2021-04-20 10:44:13
【问题描述】:
我想创建一个类似工具提示(提示)的小窗口,该窗口将根据请求弹出,然后在应用程序的JFrame 上的任意位置跟随鼠标光标,直到它稍后被销毁。它确实是一个全局提示消息,要求用户执行特定任务(在许多不同的窗口之间),一旦他们这样做了,它就会消失。例如:
GlobalToolTip panelHint = new GlobalToolTip("Global hint message.");
panelHint.show(); //Will remain visible and follow mouse
... //Waiting for user to perform a specific action or cancel
panelHint.hide(); //Hidden/destroyed here
我希望创建我自己的从JToolTip/JPanel 扩展的类,或者尽可能覆盖默认的工具提示行为。也许使用应用程序 JFrame 的 JLayeredPane 或 glassPane?
我检查了一些其他解决方案,但都仅适用于单个组件的行为。我还尝试在 glassPane 上有一个 JPanel,但它没有正确地绘制在其他一些窗口内容上。也许我没有在正确的地方调用它的绘制方法?
这似乎应该是一个很容易解决的问题,但我没能做到。任何帮助将不胜感激。
【问题讨论】:
-
向我们展示您所拥有的 GlassPane 解决方案的一些代码,因为那是我的建议。否则我们都会浪费时间想出一个解决方案,只是让你告诉我们它在超过 X 组件时不起作用。好像你展示了一些我们可以用来重现问题的代码,也许我们可以想出一个解决方案
-
@DavidKroukamp 我准备发布一些代码(已清理以隐藏项目外部性),但 VGR 的优雅解决方案完全符合我的要求,无需工具提示或玻璃窗格,所以我选择了走那条路。
标签: java swing tooltip mouseevent hint