如何在 Java 中创建 Windows 通知

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/34490218/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-08-11 15:42:35  来源:igfitidea点击:

How to make a Windows Notification in Java

javanotifications

提问by Bill Nye

In Windows 10 there is a notification that opens in the bottom right of the screen and I find them quite useful.

在 Windows 10 中,屏幕右下方会打开一个通知,我发现它们非常有用。

Is there is any way to create Windows notifications in Java? This is what they look like:

有没有办法在 Java 中创建 Windows 通知?这是它们的样子:

sample of windows notification desired

所需的 Windows 通知示例

采纳答案by RAnders00

I can successfully produce this result using this very simple sample code:

我可以使用这个非常简单的示例代码成功地产生这个结果:

screenshot

截屏

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);
    }
}

回答by Lolo

This can be achieved with the SystemTrayand TrayIconclasses. Also, if this is a new API for you, you might want to check the dedicated tutorial "How to Use the System Tray".

这可以通过SystemTrayTrayIcon类来实现。此外,如果这对您来说是一个新 API,您可能需要查看专门的教程“如何使用系统托盘”。