【发布时间】:2013-12-05 13:22:48
【问题描述】:
我有一个应用程序,它会在最小化时进入系统托盘。我需要显示一个带有计时器的工具提示。一切都很好,但我不能在每次显示工具提示时都刷新工具提示。我可以以其他方式刷新它,除了制作假鼠标事件并处理它以欺骗工具提示,如here,或者这是唯一的方法?
更新:
我用来设置工具提示的代码。
TrayIcon trayIcon;
SystemTray tray;
tray=SystemTray.getSystemTray();
trayIcon=new TrayIcon(image, "tooltipText");
tray.add(trayIcon);
这个正在更新工具提示
MyClass.trayIcon.setToolTip();
【问题讨论】:
-
我认为对于基于 ToolTip 的容器来说不是更简单的方法,作为替代可以是布局 JLabel,那么一切皆有可能(如果没有被 Thread.sleep 阻止)
-
JComponent 有
createToolTip()方法。它只是创建了新的 JToolkit(请参阅此处 kickjava.com/src/javax/swing/JComponent.java.htm)也许您可以对其进行子类化并在其或其父组件上调用重绘? -
@Piro 但它在显示时不会更新工具提示
-
您是否需要它的行为与工具提示完全相同(仅在鼠标悬停时显示)?
-
@Piro 当应用程序在托盘中时,它应该时间到某个事件。还有其他想法如何制作吗?
标签: java swing icons tooltip tray