【发布时间】:2015-06-25 15:36:26
【问题描述】:
我整天都在尝试添加我的托盘图标,但它不起作用。我将图标文件存储在 netbeans src/myproject/
我尝试了无数种不同的路径,甚至是直接指向我的文件的路径,但似乎都没有。我很确定我的代码中的某些内容不起作用,我根本看不到它。
public void createSystemTrayIcon() {
if (SystemTray.isSupported()) {
SystemTray tray = SystemTray.getSystemTray();
Image img = Toolkit.getDefaultToolkit().getImage("smallicon.ico");
PopupMenu popup = new PopupMenu();
final MenuItem menuExit = new MenuItem("Quit");
MouseListener mouseListener =
new MouseListener() {
public void mouseClicked(MouseEvent e) {
show();
}
public void mouseEntered(MouseEvent e) {
}
public void mouseExited(MouseEvent e) {
}
public void mousePressed(MouseEvent e) {
}
public void mouseReleased(MouseEvent e) {
}
};
ActionListener exitListener =
new ActionListener() {
public void actionPerformed(ActionEvent e) {
Runtime r = Runtime.getRuntime();
System.out.println("Exiting...");
r.exit(0);
}
};
menuExit.addActionListener(exitListener);
popup.add(menuExit);
final TrayIcon trayIcon = new TrayIcon(img, "ESOLeaderboards", popup);
ActionListener actionListener =
new ActionListener() {
public void actionPerformed(ActionEvent e) {
trayIcon.displayMessage("ESOLeaderboards ","version: EU 1.0",
TrayIcon.MessageType.INFO);
}
};
trayIcon.setImageAutoSize(true);
trayIcon.addActionListener(actionListener);
trayIcon.addMouseListener(mouseListener);
try {
tray.add(trayIcon);
} catch (AWTException e) {
System.err.println("TrayIcon could not be added.");
}
} else {
// System Tray is not supported
}
}
【问题讨论】:
-
你是否得到了一个“空白”空间,图标应该出现在哪里,或者什么都没有表明应该放置一个图标?
-
一个空白,它在那里,空白只是空白
-
首先确保您确实从工具包中获得了有效图像。 Toolkit 不支持 AFAIK .ico。我会先尝试使用 png。
-
@Woeler,您的确切代码适用于我的 png 图像...我希望您不只是将 .ico 重命名为 .png...只是符合...
-
他更有可能将图像放在 Toolkit 无法找到的位置。但缺乏有关项目结构的信息只是一个疯狂的猜测......