可能重复:
java 1.6 SystemTray icon does not appear on windows startup
我有java应用程序,它在窗口OS中创建系统try图标。当我手动启动它运行正常。但是现在我将我的应用程序放到窗口启动时意味着我的应用程序应该在窗口启动时运行而无需登录。
但问题是我的应用程序已启动并执行任务,但在某人登录时未添加系统托盘图标。
甚至我注意到在窗口启动时我的应用程序成功创建了TrayIcon对象,创建了MenuItem,添加了弹出窗口,甚至添加了托盘图标tray.add(trayIcon);
,即使窗口启动也没有任何异常,但是当我登录时
它没有在系统上显示时间,土地卡图标。
我希望它会在我们登录lancard tray图标时出现一些登录时创建try图标。
由于 此致
答案 0 :(得分:1)
我猜你有时间问题。您的应用程序启动太快,并在操作系统创建系统托盘之前添加系统托盘图标。
首先尝试调用SystemTray.getTrayIcons()
并将其输出打印到日志。如果您的图标确实没有出现在列表中,那么您很幸运。您可以尝试添加图标,直到它出现在托盘中。
如果它“出现”在列表中,但您看不到它,请尝试以下操作。 在添加系统托盘之前添加一些延迟。如果它有助于添加更新系统的线程,请定期尝试。它不是那么好的解决方案,但即使用户重新启动他的桌面它也会工作(我不确定它是否可以在Windows中,但它肯定可以在Linux上)。