2

我有一个在 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 图标(如另一个窗口)。

关于如何解决它的任何想法?提前致谢!

4

0 回答 0