JavaFX System Tray Support

Sebastian Stenzel sebastian.stenzel at gmail.com
Wed Apr 22 13:39:58 UTC 2020


Hi all,

I don't think I have to mention that java.awt.TrayIcon is a pretty outdated API with an especially bad implementation [1] on Linux that is only just kept alive at the mercy of distribution devs and in many cases SystemTray.isSupported() returns false despite there being a tray.

Judging from the comments in the aforementioned issues it doesn't seem like we can expect anything to change on AWT side. This is why it has often been requested to create an alternative using JavaFX. [2] That said, it has always been postponed. This led to projects like this [3] which try to work around these limitations but require a lot of different approaches for the various systems.

Isn't it time to tackle system tray support? Since this would be a completely new feature, there is no need to be backwards compatible to the same extend as changes to the AWT system tray might needs to be (which dates back to 2005). A JavaFX system tray could instead consume modern APIs like libappindicator on Linux.

The situation on Mac and Windows isn't that bad, but still it feels strange to write a JavaFX application and adding AWT only for the tray support.

May I therefore ask, if it is even planned to add a tray API to JavaFX? What are the reasons for it being postponed for nearly 9 years now? Or should I better look for other solutions like the aforementioned project that depend on JNI?

Cheers!
Sebastian


[1] see https://bugs.openjdk.java.net/browse/JDK-8176256 <https://bugs.openjdk.java.net/browse/JDK-8176256>, https://bugs.openjdk.java.net/browse/JDK-6926494 <https://bugs.openjdk.java.net/browse/JDK-6926494>,  
[2] https://bugs.openjdk.java.net/browse/JDK-8092115 <https://bugs.openjdk.java.net/browse/JDK-8092115>
[3] https://github.com/dorkbox/SystemTray <https://github.com/dorkbox/SystemTray>



More information about the openjfx-dev mailing list