import java.awt.*; import java.awt.event.*; import java.net.URL; import javax.swing.*;public class TrayIcon {private PopupMenu popup; private TrayIcon trayIcon; private SystemTray tray; public static void main(String[] args) { TrayIcon trayIconDemo = new TrayIcon(); } public TrayIcon() { if (!SystemTray.isSupported()) { System.out.println("SystemTray is not supported"); return; } popup = new PopupMenu(); trayIcon = new TrayIcon(createImage("1.gif", "tray icon")); tray = SystemTray.getSystemTray(); CheckboxMenuItem cb1 = new CheckboxMenuItem("Set auto size"); MenuItem cb2 = new MenuItem("change Icon"); MenuItem exitItem = new MenuItem("Exit"); popup.add(cb1); popup.add(cb2); popup.addSeparator(); popup.add(exitItem); trayIcon.setPopupMenu(popup); try { tray.add(trayIcon); } catch (AWTException e) { System.out.println("TrayIcon could not be added."); return; } trayIcon.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { JOptionPane.showMessageDialog(null, "This dialog box is run from System Tray"); } }); cb1.addItemListener(new ItemListener() { public void itemStateChanged(ItemEvent e) { int cb1Id = e.getStateChange(); if (cb1Id == ItemEvent.SELECTED){ trayIcon.setImageAutoSize(true); } else { trayIcon.setImageAutoSize(false); } } }); cb2.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { trayIcon.setImage(createImage("2.gif", "tray icon")); } }); exitItem.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { tray.remove(trayIcon); System.exit(0); } }); } protected Image createImage(String path, String description) { URL imageURL = TrayIconDemo.class.getResource(path); if (imageURL == null) { System.err.println("Resource not found: " + path); return null; } else { return (new ImageIcon(imageURL, description)).getImage(); } } }
我也是在这里找到的,没试过JDK 版本要求高, 需要在jdk6.0 上实现
我在jdk6.0下编译的时候出现错误 F:\jdk6.0\bin>javac TrayIcon.java TrayIcon.java:10: cannot resolve symbol symbol : class SystemTray location: class TrayIcon private SystemTray tray; ^ TrayIcon.java:17: cannot resolve symbol symbol : variable SystemTray问一下,是什么原因?
重新给过,也是网上抄的 import java.awt.*; import java.awt.event.*; import java.net.URL; import javax.swing.*;public class TrayIconDemo {private PopupMenu popup; private TrayIcon trayIcon; private SystemTray tray;public static void main(String[] args) { TrayIconDemo trayIconDemo = new TrayIconDemo(); }public TrayIconDemo() { if (!SystemTray.isSupported()) { System.out.println("SystemTray is not supported"); return; } popup = new PopupMenu(); trayIcon = new TrayIcon(createImage("1.gif", "tray icon")); tray = SystemTray.getSystemTray();CheckboxMenuItem cb1 = new CheckboxMenuItem("Set auto size"); MenuItem cb2 = new MenuItem("change Icon"); MenuItem exitItem = new MenuItem("Exit");popup.add(cb1); popup.add(cb2); popup.addSeparator(); popup.add(exitItem);trayIcon.setPopupMenu(popup);try { tray.add(trayIcon); } catch (AWTException e) { System.out.println("TrayIcon could not be added."); return; }trayIcon.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { JOptionPane.showMessageDialog(null, "This dialog box is run from System Tray"); } });cb1.addItemListener(new ItemListener() { public void itemStateChanged(ItemEvent e) { int cb1Id = e.getStateChange(); if (cb1Id == ItemEvent.SELECTED){ trayIcon.setImageAutoSize(true); } else { trayIcon.setImageAutoSize(false); } } });cb2.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { trayIcon.setImage(createImage("2.gif", "tray icon")); } });exitItem.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { tray.remove(trayIcon); System.exit(0); } }); }protected Image createImage(String path, String description) { URL imageURL = TrayIconDemo.class.getResource(path);if (imageURL == null) { System.err.println("Resource not found: " + path); return null; } else { return (new ImageIcon(imageURL, description)).getImage(); } } }我运行通过,并且显示出来了,编译运行是要设置你的classpath; 如下: set classpath=D:\project\Test\src;E:\Program Files\Java\jdk1.6.0_02\lib\tools.jar;
import java.awt.*;
import java.awt.event.*;
import java.net.URL;
import javax.swing.*;public class TrayIcon {private PopupMenu popup;
private TrayIcon trayIcon;
private SystemTray tray; public static void main(String[] args) {
TrayIcon trayIconDemo = new TrayIcon();
} public TrayIcon() {
if (!SystemTray.isSupported()) {
System.out.println("SystemTray is not supported");
return;
}
popup = new PopupMenu();
trayIcon = new TrayIcon(createImage("1.gif", "tray icon"));
tray = SystemTray.getSystemTray(); CheckboxMenuItem cb1 = new CheckboxMenuItem("Set auto size");
MenuItem cb2 = new MenuItem("change Icon");
MenuItem exitItem = new MenuItem("Exit"); popup.add(cb1);
popup.add(cb2);
popup.addSeparator();
popup.add(exitItem); trayIcon.setPopupMenu(popup); try {
tray.add(trayIcon);
} catch (AWTException e) {
System.out.println("TrayIcon could not be added.");
return;
} trayIcon.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
JOptionPane.showMessageDialog(null,
"This dialog box is run from System Tray");
}
}); cb1.addItemListener(new ItemListener() {
public void itemStateChanged(ItemEvent e) {
int cb1Id = e.getStateChange();
if (cb1Id == ItemEvent.SELECTED){
trayIcon.setImageAutoSize(true);
} else {
trayIcon.setImageAutoSize(false);
}
}
}); cb2.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
trayIcon.setImage(createImage("2.gif", "tray icon"));
}
}); exitItem.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
tray.remove(trayIcon);
System.exit(0);
}
});
} protected Image createImage(String path, String description) {
URL imageURL = TrayIconDemo.class.getResource(path); if (imageURL == null) {
System.err.println("Resource not found: " + path);
return null;
} else {
return (new ImageIcon(imageURL, description)).getImage();
}
}
}
F:\jdk6.0\bin>javac TrayIcon.java
TrayIcon.java:10: cannot resolve symbol
symbol : class SystemTray
location: class TrayIcon
private SystemTray tray;
^
TrayIcon.java:17: cannot resolve symbol
symbol : variable SystemTray问一下,是什么原因?
import java.awt.*;
import java.awt.event.*;
import java.net.URL;
import javax.swing.*;public class TrayIconDemo {private PopupMenu popup;
private TrayIcon trayIcon;
private SystemTray tray;public static void main(String[] args)
{
TrayIconDemo trayIconDemo = new TrayIconDemo();
}public TrayIconDemo() {
if (!SystemTray.isSupported()) {
System.out.println("SystemTray is not supported");
return;
}
popup = new PopupMenu();
trayIcon = new TrayIcon(createImage("1.gif", "tray icon"));
tray = SystemTray.getSystemTray();CheckboxMenuItem cb1 = new CheckboxMenuItem("Set auto size");
MenuItem cb2 = new MenuItem("change Icon");
MenuItem exitItem = new MenuItem("Exit");popup.add(cb1);
popup.add(cb2);
popup.addSeparator();
popup.add(exitItem);trayIcon.setPopupMenu(popup);try {
tray.add(trayIcon);
} catch (AWTException e) {
System.out.println("TrayIcon could not be added.");
return;
}trayIcon.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
JOptionPane.showMessageDialog(null,
"This dialog box is run from System Tray");
}
});cb1.addItemListener(new ItemListener() {
public void itemStateChanged(ItemEvent e) {
int cb1Id = e.getStateChange();
if (cb1Id == ItemEvent.SELECTED){
trayIcon.setImageAutoSize(true);
} else {
trayIcon.setImageAutoSize(false);
}
}
});cb2.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
trayIcon.setImage(createImage("2.gif", "tray icon"));
}
});exitItem.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
tray.remove(trayIcon);
System.exit(0);
}
});
}protected Image createImage(String path, String description) {
URL imageURL = TrayIconDemo.class.getResource(path);if (imageURL == null) {
System.err.println("Resource not found: " + path);
return null;
} else {
return (new ImageIcon(imageURL, description)).getImage();
}
}
}我运行通过,并且显示出来了,编译运行是要设置你的classpath;
如下:
set classpath=D:\project\Test\src;E:\Program Files\Java\jdk1.6.0_02\lib\tools.jar;