Java Changer l'icône de la barre d'état


Salut, j'essaie de changer dynamiquement une icône de plateau que j'ai en java. Par exemple, ils icône est carré gris. Lorsqu'un utilisateur clique sur un élément dans mon menu de plateau, j'aimerais que le carré gris change d'image en carré rouge.

Here is my current code for the tray icon.

'public class Utils {
    private static Image iconImage;
    private static Image iconImage2;
    private static SystemTray sysTray;
    private static PopupMenu menu;
    private static MenuItem item1;
    private static MenuItem item2;
    private static MenuItem item0;
    private static TrayIcon trayIcon;
    private static TrayIcon trayIcon2;
    public static void loadTrayIcon() {
        JFrame frame = new JFrame("AC Tray Frame");

        frame.setLayout(new GridLayout(1, 3)); 

        if (SystemTray.isSupported()) {
            sysTray = SystemTray.getSystemTray();

            iconImage  = Toolkit.getDefaultToolkit().getImage("osx_tray_icon.png");
            iconImage2  = Toolkit.getDefaultToolkit().getImage("loading.gif");

            menu = new PopupMenu();

            item0 = new MenuItem("This is a test");
            item0.setEnabled(false);
            item1 = new MenuItem("Test");
            item2 = new MenuItem("Exit");

            menu.add(item0);
            menu.addSeparator();
            menu.add(item1);
            menu.addSeparator();
            menu.add(item2);

            item1.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent e) {
                    try {
                        system.out.println("hi");
                    } catch (IOException e1) {
                        e1.printStackTrace();
                    }
                }
            });

            item2.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent e) {
                    System.exit(0);
                }
            });

            trayIcon = new TrayIcon(iconImage, "Test Title", menu);

            try {
                sysTray.add(trayIcon);
            }

            catch(AWTException e) {
                System.out.println(e.getMessage());
            }
        }
    }'
Author: pablo67340, 2014-06-10

1 answers

Vous souhaitez simplement utiliser TrayIcon#setImage ce qui va changer l'icône affichée par le TrayIcon

 0
Author: MadProgrammer, 2014-06-09 21:18:20