GoMustang mustang = new GoMustang(); mustang.createTrayIcon(); } public void createTrayIcon() throws Exception { if (SystemTray.isSupported ()) { System.out.println("System Tray Supported. Creating TrayIcon...");
// create launch browser menu item MenuItem launchBrowserItem = new MenuItem("Launch Browser"); // create action listener for lauch browswer menu item ActionListener launchListener = new ActionListener() { public void actionPerformed(ActionEvent e) { if (Desktop.isDesktopSupported()) { actionMessage = "Launched Browser"; try { trayIcon.displayMessage("GoMustang!","Lauching Browser...", TrayIcon.MessageType.INFO); Desktop desktop = Desktop.getDesktop(); desktop.browse(new URI("http://localhost/")); trayIcon.setToolTip("GoMustang!"); } catch(Exception exp) { } } } }; // add listener to launch browser menu item launchBrowserItem.addActionListener(launchListener); // create exit menu item MenuItem exitItem = new MenuItem("Exit"); // create action listeners for exit menu items ActionListener exitListener = new ActionListener() { public void actionPerformed(ActionEvent e) { System.exit(0); } }; // add action listener to exit menu item exitItem.addActionListener(exitListener);
// create popup menu PopupMenu popup = new PopupMenu(); // Add exit and launch browser menu items to Popup Menu // Order in which MenuItems are added to PopupMenu determines the order in which they are displayed popup.add(launchBrowserItem); System.out.println("Added Launch Browser MenuItem To PopupMenu");
// add exit menutime to popup popup.add(exitItem); System.out.println("Added Exit MenuItem To PopupMenu");
// Get the tray icon's image from JAR InputStream in = getClass().getResourceAsStream("gomustang.gif"); byte buffer[] = new byte[in.available()]; for (int i = 0, n = in.available(); i<n; i++) buffer[i] = (byte)in.read(); Image image = Toolkit.getDefaultToolkit().createImage(buffer); System.out.println("Retreived TrayIcon Image From JAR"); // Create system tray Icon with Image, title text and Popup menu we just created trayIcon = new TrayIcon(image, "Go Mustang!", popup);
// The imagesize adjusts to available space trayIcon.setImageAutoSize(true);
// Create Action Listeners. It displays the Message ActionListener actionListener = new ActionListener() { public void actionPerformed(ActionEvent e) { trayIcon.displayMessage("Latest Gallops", actionMessage, TrayIcon.MessageType.INFO); } }; trayIcon.addActionListener(actionListener); System.out.println("Added ActionListener To TrayIcon"); // create Mouse Listeners. These currently do not do much MouseListener mouseListener = new MouseListener() { public void mouseClicked(MouseEvent e) { System.out.println("TrayIcon - Mouse Clicked"); } public void mouseEntered(MouseEvent e) { System.out.println("TrayIcon - Mouse Entered"); } public void mouseExited(MouseEvent e) { System.out.println("TrayIcon - Mouse Exited"); } public void mousePressed(MouseEvent e) { System.out.println("TrayIcon - Mouse Pressed"); } public void mouseReleased(MouseEvent e) { System.out.println("TrayIcon - Mouse Released"); } }; trayIcon.addMouseListener(mouseListener); System.out.println("Added MouseListener To TrayIcon"); SystemTray systemTray = SystemTray.getSystemTray(); systemTray.add(trayIcon); System.out.println("...TrayIcon Successfully Added To SystemTray"); } else { System.out.println ("SystemTray Not Supported By Operating System"); } }
public static void pause(int milliSeconds) throws Exception { System.out.println("Pausing For " + milliSeconds/1000 + " Seconds..."); Thread.sleep (milliSeconds); // Pause milli seconds } }
1.Windows Tray Icon ( http://jeans.studentenweb.org/java/trayicon/trayicon.html )
2.SysTray for Java ( http://systray.sourceforge.net/ )
这里有一段引用例子:
import java.awt.*;
import java.awt.event.*;
import java.io.InputStream;
import java.net.URI;public class GoMustang
{
private TrayIcon trayIcon;
private String actionMessage = "...";
public static void main (String [] args) throws Exception
{
SplashScreen splashScreen = SplashScreen.getSplashScreen ();
if (splashScreen != null)
{
pause(3000);
splashScreen.close();
}
GoMustang mustang = new GoMustang();
mustang.createTrayIcon();
} public void createTrayIcon() throws Exception
{
if (SystemTray.isSupported ())
{
System.out.println("System Tray Supported. Creating TrayIcon...");
// create launch browser menu item
MenuItem launchBrowserItem = new MenuItem("Launch Browser");
// create action listener for lauch browswer menu item
ActionListener launchListener = new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
if (Desktop.isDesktopSupported())
{
actionMessage = "Launched Browser";
try
{
trayIcon.displayMessage("GoMustang!","Lauching Browser...", TrayIcon.MessageType.INFO);
Desktop desktop = Desktop.getDesktop();
desktop.browse(new URI("http://localhost/"));
trayIcon.setToolTip("GoMustang!");
}
catch(Exception exp)
{
}
}
}
};
// add listener to launch browser menu item
launchBrowserItem.addActionListener(launchListener); // create exit menu item
MenuItem exitItem = new MenuItem("Exit");
// create action listeners for exit menu items
ActionListener exitListener = new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
System.exit(0);
}
};
// add action listener to exit menu item
exitItem.addActionListener(exitListener);
// create popup menu
PopupMenu popup = new PopupMenu(); // Add exit and launch browser menu items to Popup Menu
// Order in which MenuItems are added to PopupMenu determines the order in which they are displayed
popup.add(launchBrowserItem);
System.out.println("Added Launch Browser MenuItem To PopupMenu");
// add exit menutime to popup
popup.add(exitItem);
System.out.println("Added Exit MenuItem To PopupMenu");
// Get the tray icon's image from JAR
InputStream in = getClass().getResourceAsStream("gomustang.gif");
byte buffer[] = new byte[in.available()];
for (int i = 0, n = in.available(); i<n; i++)
buffer[i] = (byte)in.read();
Image image = Toolkit.getDefaultToolkit().createImage(buffer);
System.out.println("Retreived TrayIcon Image From JAR"); // Create system tray Icon with Image, title text and Popup menu we just created
trayIcon = new TrayIcon(image, "Go Mustang!", popup);
// The imagesize adjusts to available space
trayIcon.setImageAutoSize(true);
// Create Action Listeners. It displays the Message
ActionListener actionListener = new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
trayIcon.displayMessage("Latest Gallops", actionMessage, TrayIcon.MessageType.INFO);
}
};
trayIcon.addActionListener(actionListener);
System.out.println("Added ActionListener To TrayIcon");
// create Mouse Listeners. These currently do not do much
MouseListener mouseListener = new MouseListener()
{
public void mouseClicked(MouseEvent e)
{
System.out.println("TrayIcon - Mouse Clicked");
} public void mouseEntered(MouseEvent e)
{
System.out.println("TrayIcon - Mouse Entered");
} public void mouseExited(MouseEvent e)
{
System.out.println("TrayIcon - Mouse Exited");
} public void mousePressed(MouseEvent e)
{
System.out.println("TrayIcon - Mouse Pressed");
} public void mouseReleased(MouseEvent e)
{
System.out.println("TrayIcon - Mouse Released");
}
};
trayIcon.addMouseListener(mouseListener);
System.out.println("Added MouseListener To TrayIcon"); SystemTray systemTray = SystemTray.getSystemTray();
systemTray.add(trayIcon);
System.out.println("...TrayIcon Successfully Added To SystemTray");
}
else
{
System.out.println ("SystemTray Not Supported By Operating System");
}
}
public static void pause(int milliSeconds) throws Exception
{
System.out.println("Pausing For " + milliSeconds/1000 + " Seconds...");
Thread.sleep (milliSeconds); // Pause milli seconds
}
}