当前平台不支持系统托盘?
The system tray is not supported on the current platform?
我正在尝试使用 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() 方法测试片段,因为我一直得到 "System tray is not supported"。
我得到的异常是:
Exception in thread "main" java.lang.UnsupportedOperationException: The system tray is not supported on the current platform.
at java.awt.SystemTray.getSystemTray(SystemTray.java:186)
at App.main(App.java:16)
知道如何支持它吗?
另外,如果有人有 MacOS 设备,您可以试试吗,如果可以的话请告诉我?谢谢!
Gnome 3.28(在 Ubuntu 18.04 中使用)删除了系统托盘。
有一个名为 TopIcon Plus Gnome Shell Exetension 的软件,它 returns 系统托盘。
我测试了代码,效果符合预期。全局栏中放置了一个图标。
我正在尝试使用 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() 方法测试片段,因为我一直得到 "System tray is not supported"。
我得到的异常是:
Exception in thread "main" java.lang.UnsupportedOperationException: The system tray is not supported on the current platform. at java.awt.SystemTray.getSystemTray(SystemTray.java:186) at App.main(App.java:16)
知道如何支持它吗? 另外,如果有人有 MacOS 设备,您可以试试吗,如果可以的话请告诉我?谢谢!
Gnome 3.28(在 Ubuntu 18.04 中使用)删除了系统托盘。 有一个名为 TopIcon Plus Gnome Shell Exetension 的软件,它 returns 系统托盘。 我测试了代码,效果符合预期。全局栏中放置了一个图标。