我有一个在Windows(很棒)和Ubuntu 12.04上运行的应用程序(面对几个接口问题)。 首先,我在下面的代码中实现了TrayIcon:
if (SystemTray.isSupported()) {
// Get the SystemTray instance
SystemTray tray = SystemTray.getSystemTray();
// Load icon
java.awt.Image image = null;
try {
image = ImageIO.read(getClass().getResource("icon.png"));
} catch (IOException exc) {
exc.printStackTrace();
}
/**
* A few listeners to popup menu items click.
*/
// Create a popup menu and its items
PopupMenu popup = new PopupMenu();
MenuItem openItem = new MenuItem("Open");
openItem.addActionListener(openListener);
popup.add(openItem);
popup.addSeparator();
MenuItem closeItem = new MenuItem("Close");
closeItem.addActionListener(closeListener);
popup.add(closeItem);
trayIcon = new TrayIcon(image, "app test", popup);
try {
tray.add(trayIcon);
} catch (AWTException exc) {
exc.printStaceTrack();
}
}
这个png图标有一个透明的背景。正如我所说,在Windows上运行正常。但在Linux上,它获得了白色背景。此外,当鼠标位于其图标上方时,会显示标签(不是工具提示)“JavaEmbeddedFrame”。
我的.desktop文件(在/ usr / share / application中)设置为:
[Desktop Entry]
Encoding=UTF-8
Name=appTest
GenericName=appTest
Comment=Testing
Exec=/bin/sh "/usr/share/appTest/test.sh"
Icon=/usr/share/appTest/icon.png
Terminal=false
Type=Application
StartupNotify=true
当ALT + TAB时,它不显示“appTest”,而是显示带有我的应用程序图标的“Java”和带有“java.lang.Thread”描述的默认Java图标(如另一个窗口)。
有关如何修复它的任何想法? 提前谢谢!