Java 托盘图标在Ubuntu 16.04上不起作用

Java 托盘图标在Ubuntu 16.04上不起作用,java,ubuntu,gnome,Java,Ubuntu,Gnome,我在Ubuntu Gnome 16.04下遇到了Java awt托盘图标的问题: 该图标显示在“我的屏幕”的左上角,在系统托盘中显示一个黑色正方形。鼠标侦听器也不在图标或黑色方块上工作 这是我的密码: if (SystemTray.isSupported()) { Image image = ImageIO.read(EyeUNIFYlocal.class.getResource("/star.png")); TrayIcon trayIcon = new TrayIcon(imag

我在Ubuntu Gnome 16.04下遇到了Java awt托盘图标的问题:

该图标显示在“我的屏幕”的左上角,在系统托盘中显示一个黑色正方形。鼠标侦听器也不在图标或黑色方块上工作

这是我的密码:

if (SystemTray.isSupported()) {
   Image image = ImageIO.read(EyeUNIFYlocal.class.getResource("/star.png"));
   TrayIcon trayIcon = new TrayIcon(image);
   trayIcon.setImageAutoSize(true);

   trayIcon.addMouseListener(new MouseAdapter() {
      @Override
      public void mouseClicked(MouseEvent e) {
         System.out.println("Clicked");
      }
   });
   try {
      SystemTray.getSystemTray().add(trayIcon);
   } catch (AWTException ex) {
      System.err.println("Error while creating tray icon.");
   }
} else {
   System.err.println("Tray icons are not supported on this System.");
}
此代码在Windows 10上运行良好


提前谢谢你

对于较新的Linux发行版,Java系统托盘支持不存在,主要是因为从GtkStatusIcon到AppIndicator的更改,以及GTK2/3的更改,所以JavaFX存在问题,除非您安装一些额外的库

此外,由于您提到了Gnome,Gnome喜欢将AppIndicator隐藏为通知,因此有一个扩展top icons,允许您将指示器恢复到屏幕顶部,而不是屏幕左下角的隐藏抽屉中

如果您想显示跨平台系统托盘图标,我建议您选择该项目。很快会有一个入站3.0版本,API重写和更好的本机支持,但是旧的2.x版本应该可以解决您遇到的问题