How to make a Windows Notification in Java
41,996
Solution 1
I can successfully produce this result using this very simple sample code:
import java.awt.*;
import java.awt.TrayIcon.MessageType;
public class TrayIconDemo {
public static void main(String[] args) throws AWTException {
if (SystemTray.isSupported()) {
TrayIconDemo td = new TrayIconDemo();
td.displayTray();
} else {
System.err.println("System tray not supported!");
}
}
public void displayTray() throws AWTException {
//Obtain only one instance of the SystemTray object
SystemTray tray = SystemTray.getSystemTray();
//If the icon is a file
Image image = Toolkit.getDefaultToolkit().createImage("icon.png");
//Alternative (if the icon is on the classpath):
//Image image = Toolkit.getDefaultToolkit().createImage(getClass().getResource("icon.png"));
TrayIcon trayIcon = new TrayIcon(image, "Tray Demo");
//Let the system resize the image if needed
trayIcon.setImageAutoSize(true);
//Set tooltip text for the tray icon
trayIcon.setToolTip("System tray icon demo");
tray.add(trayIcon);
trayIcon.displayMessage("Hello, World", "notification demo", MessageType.INFO);
}
}
Solution 2
This can be achieved with the SystemTray and TrayIcon classes. Also, if this is a new API for you, you might want to check the dedicated tutorial "How to Use the System Tray".
Author by
Bill Nye
Updated on July 13, 2020Comments
-
Bill Nye almost 4 years
In Windows 10 there is a notification that opens in the bottom right of the screen and I find them quite useful.
Is there is any way to create Windows notifications in Java? This is what they look like:
-
Bill Nye over 8 yearsOne question how would i set the exclamation mark to it's own texture, i have seen other notifications with custom png files as there icons.
-
randers over 8 yearsIt does not look like that's possible - that seems to be a feature not available in AWT, it's possibly only available in the native windows gui toolkits.
-
Blaine over 7 yearsCurrently the notification is removed from the action center after it expires. Is there a way to keep it there?
-
Johannes Brodwall over 3 yearsSuper answer. Is there a way to stop the system tray icon from preventing JVM from exiting?
-
MrPowerGamerBR over 3 years@JohannesBrodwall if you remove the
trayIcon
from thetray
(tray.remove(trayIcon)
) the JVM will exit. Keep in mind that if you remove it while the notification is still open, the notification will magically disappear.