Zróbmy sobie TrayIcon

Dziś błądząc sobie z nudów po interenecie natrafiłem gdzieś po zagranicznej jego stronie na wpis dotyczący tworzenia ikonki w tray’u. Mam paru kolegów którzy raczej starają się unikać tejże zagranicznej części netu tak więc niech będzie że wpis jest special for them. Jako, że z Windowsa korzystam to wiem że taki TrayIcon to bardzo przydatna i wygodna rzecz.  Więc fajnie zapodać takie udogodnienie w naszych aplikacjach. No dobra w takim razie weźmy się do pracy. Kod wygląda tak:

[java]

public class Tray {
public static void main(String[] args) {

if (!SystemTray.isSupported()) {
return;
}
final TrayIcon trayIcon =
new TrayIcon(Toolkit.getDefaultToolkit().createImage("x.jpg"));
final PopupMenu popup = new PopupMenu();
final SystemTray tray = SystemTray.getSystemTray();

// Tworzymy poszczególne menu
MenuItem opcja1 = new MenuItem("Opcja1");
CheckboxMenuItem cb1 = new CheckboxMenuItem("checkbox");

Menu opcja2 = new Menu("Opcja2…");
MenuItem opcja21 = new MenuItem("Opcja2.1");
MenuItem opcja22 = new MenuItem("Opcja2.2");

MenuItem exit = new MenuItem("Exit");
exit.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent e) {
System.exit(1);
}
});

popup.add(opcja1);
popup.addSeparator();
popup.add(cb1);
popup.addSeparator();
popup.add(opcja2);
opcja2.add(opcja21);
opcja2.add(opcja22);
popup.add(exit);
trayIcon.setPopupMenu(popup);

try {
tray.add(trayIcon);
}
catch (AWTException e) {
return;
}
}
}

[/java]

W liniach 4 – 6 sprawdzamy czy w naszym systemie jest w ogóle obsługa Tray’a.
W liniach 7 – 8 tworzymy właściwie TrayIcon’ke. Kolejne linijki to już wypełnianie Menu,
które pojawi się po kliknięciu prawym klawiszem myszy na naszej ikonce w Tray’u, wydaje mi się że komentarz dalszego kawałka kodu będzie zbędny. Oczywiście rozsądnie będzie dodać ActionListener’y do wszystkich elementów w Menu (ja dałem tylko do Exit).

Leave a Reply

Your email address will not be published.