2012-03-15 5 views
0

Я добавляю свое приложение в системный трей, когда я его закрываю. Но значок не отображается. Когда я пытаюсь показать файл изображения, он работает нормально, но когда я пытаюсь использовать файл значка, он не работает. Как я могу отобразить значок вместо изображения?Как показать файл значка в системном трее?

Image image = new ImageIcon("src/resources/busylogo.jpg").getImage(); 
final TrayIcon trayIcon = new TrayIcon(image); 
try { 
    SystemTray.getSystemTray().add(trayIcon); 
} catch (AWTException e2) { 
    e2.printStackTrace(); 
} 
+0

Какие исключения вы получаете? –

+0

Я не получаю исключения, но его значок не отображается на лотке – Vinay

+0

Попробуйте использовать Image Image = Toolkit.getDefaultToolkit(). GetImage ("src/resources/busylogo.jpg"); TrayIcon trayIcon = новый TrayIcon (изображение); –

ответ

1

Лучше использовать Инструментарий для загрузки значка. Это файл с низким размером, а асинхронная загрузка даст вам меньше проблем. Попробуйте этот код, рекомендованный Sun.

SystemTray tray = SystemTray.getSystemTray(); 
Image image = Toolkit.getDefaultToolkit().getImage("src/resources/busylogo.jpg"); 
final TrayIcon trayIcon = new TrayIcon(image); 
try { 
    tray.add(trayIcon); 
} catch (AWTException e2) { 
    e2.printStackTrace(); 
} 

Больше информации здесь: http://java.sun.com/developer/technicalArticles/J2SE/Desktop/javase6/systemtray/

+0

@ Vinay только что видел последний комментарий: не уверен, что вы можете загрузить файлы .ico. Не найден для TrayIcon, но ImageIcon (например) принимает только JGP/PNG/GIF (http://docs.oracle.com/javase/7/docs/api/javax/swing/ImageIcon.html) – zessx

+0

thanx. его рабочий штраф для .jpg но не для .ico, и я хочу это .ico – Vinay

+0

Подтверждение, похоже, TrayIcon не поддерживает файлы ICO и BMP. Я думаю, это потому, что ICO - это формат файла Windows, поэтому это не может быть многоплатформенным (это главная цель Java) – zessx

Смежные вопросы