it-swarm.com.de

So machen Sie eine Windows-Benachrichtigung in Java

In Windows 10 gibt es eine Benachrichtigung, die sich unten rechts im Bildschirm öffnet und ich finde sie recht nützlich.

Gibt es eine Möglichkeit, Windows-Benachrichtigungen in Java zu erstellen? So sehen sie aus:

 sample of windows notification desired

18
Bill Nye

Ich kann dieses Ergebnis mit diesem einfachen Beispielcode erfolgreich erzeugen:

 screenshot

import Java.awt.*;
import Java.awt.TrayIcon.MessageType;
import Java.net.MalformedURLException;

public class TrayIconDemo {

    public static void main(String[] args) throws AWTException, MalformedURLException {
        if (SystemTray.isSupported()) {
            TrayIconDemo td = new TrayIconDemo();
            td.displayTray();
        } else {
            System.err.println("System tray not supported!");
        }
    }

    public void displayTray() throws AWTException, MalformedURLException {
        //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);
    }
}
40
RAnders00

Dies kann mit den Klassen SystemTray und TrayIcon erreicht werden. Wenn dies eine neue API für Sie ist, sollten Sie das spezielle Tutorial " So verwenden Sie die Taskleiste " aktivieren.

3
Lolo

Die richtige Antwort funktioniert für mich in jdk 1.8, indem Sie Toolkit.getDefaultToolkit () Anstelle von Toolkit.getToolkit () verwenden.

0
user2608645