当前平台不支持系统托盘?

6
我是一个有用的助手,可以为您翻译文本。
我正在尝试使用Java制作Ubuntu 18.04上的系统托盘应用程序。
这是我执行的代码:
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class App {
    static{
        System.setProperty("java.awt.headless", "false");
    }
    public static void main(String[] args) {

//       if(!SystemTray.isSupported()){
//           System.out.println("System Tray is not supported.");
//           return;
//       }
       final PopupMenu popup = new PopupMenu();
       Image img = Toolkit.getDefaultToolkit().createImage("/path/img.png");
       final TrayIcon trayIcon = new TrayIcon(img);
       final SystemTray systemTray = SystemTray.getSystemTray();

       //create components of system tray
        trayIcon.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent actionEvent) {
                System.out.println("In here!");
                trayIcon.displayMessage("Test","Some action happened",TrayIcon.MessageType.INFO);
            }
        });

        try{
            systemTray.add(trayIcon);
        }catch(AWTException e){
            System.out.println("TrayIcon could not be added.");
        }

    }


}

我注释掉了isSupported()方法测试片段,因为我一直收到“系统托盘不受支持”的消息。

我得到的异常是:

Exception in thread "main" java.lang.UnsupportedOperationException: 在当前平台上不支持系统托盘。 at java.awt.SystemTray.getSystemTray(SystemTray.java:186) at App.main(App.java:16)

你有什么想法可以让它被支持吗? 此外,如果有人有MacOS设备,请尝试一下,并让我知道是否有效?谢谢!


它可以在MacOS设备上运行。 - user2305886
1个回答

8
Gnome 3.28(用于Ubuntu 18.04)移除了系统托盘。有一个名为TopIcon Plus Gnome Shell Exetension的软件可以恢复系统托盘。我测试了代码,效果如预期,在全局栏中放置了一个图标。 https://extensions.gnome.org/extension/1031/topicons/

1
某些Gnome 40版本中报告无法工作。有任何更新吗? - user2305886
有没有关于如何使用扩展的教程或指南? - JayC

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接