【发布时间】:2015-03-13 18:17:25
【问题描述】:
我有一个程序在运行时会在系统托盘中显示一个图标。我正在使用下面的代码在系统托盘区域显示一个图标:
public static void showTrayIcon() {
if (java.awt.SystemTray.isSupported()) {
st = java.awt.SystemTray.getSystemTray();
image = Toolkit.getDefaultToolkit().getImage(PongeeUtil.class.getClass().getResource("export.png"));
ActionListener listener = new ActionListener() {
public void actionPerformed(ActionEvent e) {
JOptionPane.showMessageDialog(null, "Hello");
}
};
PopupMenu popup = new PopupMenu();
MenuItem defaultItem = new MenuItem("sdf");
defaultItem.addActionListener(listener);
popup.add(defaultItem);
trayIcon = new TrayIcon(image, "Tray Demo", popup);
trayIcon.addActionListener(listener);
try {
st.add(trayIcon);
} catch (AWTException e) {
System.err.println(e);
}
}
}
当我在main() 中调用此方法时,我的系统托盘中有一些东西,但图标不见了。我认为图像无法加载。图像位于我的 java 文件所在的同一包中。
我在这里做错了什么?
【问题讨论】:
-
export.png在源上下文中位于何处?考虑使用ImageIO.read加载图像,当它无法加载它们时会抛出错误。更多详情请见Reading/Loading an Image -
图像与我的 java 文件在同一个包中。
标签: java