Простой способ добавить окно в системный трей

Возможный дубликат:
Как я могу поместить свою Java-программу в системный трей?

Я делаю систему уведомлений в java, я хочу, чтобы программа отображалась в системном трее, а не на панели задач, я пробовал:

notification.setExtendedState(JFrame.ICONIFIED);

Это не только не работает, но и отстает от моего компьютера Текущий код:

public static void notify(String line1, String line2, String imagepath, int style){
        GraphicsDevice gd = GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice();
        int width = gd.getDisplayMode().getWidth();
        int swidth = width - 320;

        JFrame notification = new JFrame();
        JPanel main = new JPanel(new FlowLayout(FlowLayout.RIGHT));
        main.setLayout( new GridLayout( 2 , 1 ) );



        JLabel notifyline1 = new JLabel();
        notifyline1.setText(line1);
        notifyline1.setFont(new Font("Minecraft",1 , 16));
        notifyline1.setForeground(new Color(242, 238, 17));
        main.add(notifyline1);

        JLabel notifyline2 = new JLabel();
        notifyline2.setText(line2);
        notifyline1.setFont(new Font("Minecraft",1 , 12));
        notifyline1.setForeground(Color.black);
        main.add(notifyline1);

        notification.add(main);
        notification.setExtendedState(JFrame.ICONIFIED);
        notification.setSize(new Dimension(320,64));
        notification.setLocation(swidth, 0);
        notification.setUndecorated(true);
        notification.setVisible(true);
    }

ТАКЖЕ, чтобы убить 2 зайцев одним выстрелом, есть ли способ покрасить jlabel, пробовал

label1.setForegroundColor(new Color(100, 100, 100));

person user1631686    schedule 13.01.2013    source источник


Ответы (1)


Java имеет класс TrayIcon, который можно использовать для минимизации приложения до SystemTray. Вы можете увидеть рабочий пример здесь.

person kaysush    schedule 13.01.2013