2015-12-28 11 views

risposta

29

posso produrre con successo questo risultato utilizzando questo semplice codice di esempio:

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.getToolkit().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); 
    } 
} 
+0

Una domanda come potrei impostare il punto esclamativo ad essa la propria consistenza, ho visto altre notifiche con file png personalizzati come icone lì. –

+0

Non sembra possibile - sembra essere una funzionalità non disponibile in AWT, probabilmente è disponibile solo nei toolkit gui nativi di Windows. – RAnders00

+1

Attualmente la notifica viene rimossa dal centro operativo dopo la sua scadenza. C'è un modo per tenerlo lì? – Blaine

0

la risposta corretta funziona per me in JDK 1.8 utilizzando Toolkit.getDefaultToolkit() invece di Toolkit.getToolkit()

Problemi correlati