来自Java的Windows 10上的通知

时间:2017-07-21 08:50:08

标签: java windows notifications

我正在创建一个推送通知的Java程序,我想删除或编辑“Java(TM)Platform SE binary”这一行。

这可能吗?我在谷歌搜索但我看不到有关此信息。

这是相关代码。最后一行是推送通知的行。

public void mostrarNotificacion(Usuario user) throws AWTException, java.net.MalformedURLException, IOException {
    //Obtain only one instance of the SystemTray object
    SystemTray tray = SystemTray.getSystemTray();

    //Get image
    BufferedImage trayIconImage = ImageIO.read(getClass().getResource("favicon.png"));
    int trayIconWidth = new TrayIcon(trayIconImage).getSize().width;
    TrayIcon trayIcon = new TrayIcon(trayIconImage.getScaledInstance(trayIconWidth, -1, Image.SCALE_SMOOTH));

    //Let the system resizes the image if needed
    trayIcon.setImageAutoSize(true);

    //Set tooltip text and notification text
    if(user.getDescargos()>=5 || user.getOtrosPendientes()>=1){
        mensaje = "Descargos pendientes: " + user.getDescargos() + "\nSecciones pendientes: "+ user.getOtrosPendientes();
    }
    trayIcon.setToolTip(mensaje);
    tray.add(trayIcon);
    trayIcon.displayMessage("Pendientes EKHI", mensaje, MessageType.WARNING);
}

enter image description here

2 个答案:

答案 0 :(得分:0)

解决此问题的唯一方法是使用java原生启动器。

我最好的选择是javapackager,它允许您捆绑JVM的本地副本,使您的应用程序完全可移植。

其他选项是launch4j,它只创建一个启动程序,但仍然需要安装Java。

答案 1 :(得分:0)

如果使用TrayIcon.MessageType.NONE

,则不会出现“ Java(TM)Platform SE二进制文件”

示例图片:

enter image description here