我正在使用sytray using Java 6 and Swing在Linux上创建Java应用程序。该应用程序看起来很棒(使用系统的外观和感觉)但系统看起来很糟糕。我的意思是系统托盘菜单看起来像老widgedts(Motif?)。我想知道是否有办法设置一个外观和感觉,或者让系统托盘更漂亮。
下面是托盘的截图:
答案 0 :(得分:5)
您是否尝试过JXTrayIcon?
我使用Compiz在Ubuntu 10.10上用SwingHelper测试了this demo,看起来很酷。
答案 1 :(得分:2)
Swing使用模拟的UI小部件。它有许多你可以应用的样式或主题。如果您希望获得更多原生结果,则需要查找另一个小部件工具包。您有几个选择:
如果您的需求非常基础,您可能会对AWT这个原始的Java UI工具包感到满意。它使用本机小部件,但它支持的小部件库非常有限。
如果您想要超越AWT,请考虑在eclipse.org上维护的SWT。它为您提供了丰富的小部件库,这些小部件是本机实现的。
答案 2 :(得分:2)
因为Swing在Systray上使用AWT,如果你想在systray上看起来很棒。也许你可以试试SWT:)
答案 3 :(得分:2)
我为它编写了自己的库。这是链接:
http://www.2shared.com/file/sQdjb6aG/jtray.html
用法:
import javax.swing.jtray.*;
JTrayIcon.initSystemTray();
JTrayIcon icon = new JTrayIcon(img, "Tooltip", jpopupmenu);
icon.displayMessage(null, "Title", "Multiline\nsecondline", 3000); // 3 seconds
该库使用了一些肮脏的技巧,所以它可能不适用于任何Linux平台,就像Ubuntu一样好。它也适用于Windows和OSX。
答案 4 :(得分:1)
我自己没有尝试过,但如果您使用的是Java 6 Update 10或更高版本,您可以使用新的Nimbus外观吗?:
我在Ubuntu上听说过使用“JPopupMenu”的托盘图标,它使用了Nimbus的外观和感觉,所以这可能是你最好的选择:
从我所看到的,单独使用JPopupMenu将是一个很大的改进 - 再加上Nimbus它应该很棒。
答案 5 :(得分:1)
快速&脏的解决方法: 创建一个未修饰的JDialog,为它添加一个JPopupMenu,并根据需要从TrayIcon的鼠标监听器中看到它。