java在任务栏上添加图标和事件

class Window extends JFrame {
    /**
     *
     */
    private static final long serialVersionUID = 1L;
    private final int BUTTON_HEIGHT = 30;
    private final int WINDOW_WIDTH = 300;
    private final int WINDOW_HEIGHT = 60 + BUTTON_HEIGHT;
    private SystemTray st;
    private TrayIcon ti = null;
    private MenuItem startMenu = new MenuItem("Start");
    private MenuItem stopMenu = new MenuItem("Stop");
    private MenuItem exitMenu = new MenuItem("Exit");
    private MenuItem addByDate = new MenuItem("AddByDate");
    private PopupMenu pm;

    public MenuItem getStartMenu() {
        return startMenu;
    }

    public MenuItem getStopMenu() {
        return stopMenu;
    }

    public MenuItem getAddByDate() {
        return addByDate;
    }

    public Window(String title) {
        setTitle(title);
        init();
        addIoc();
    }

    private void addIoc() {
        if (SystemTray.isSupported()) {// 判断当前平台是否支持系统托盘
            st = SystemTray.getSystemTray();
            Image image = getImageByString("Stop.png"); // 定义托盘图标的图片
            createPopupMenu();
            ti = new TrayIcon(image, "更新数据-.xi", pm);
            ti.setImage(image);
            try {
                st.add(ti);
            } catch (AWTException ex) {
                ex.printStackTrace();
            }
        }
    }

    public Image getImageByString(String path) {
        return Toolkit.getDefaultToolkit().getImage(
                Window.class.getClassLoader().getResource(path));
    }

    public void createPopupMenu() {
        pm = new PopupMenu();
        MenuItem showInfo = new MenuItem("ShowInfo");
        startMenu.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                ti.setImage(getImageByString("Start.png"));
            }
        });
        stopMenu.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                ti.setImage(getImageByString("Stop.png"));

            }
        });
        exitMenu.addActionListener(new ActionListener() {
            
            public void actionPerformed(ActionEvent e) {
                int tag = JOptionPane.showConfirmDialog(null,
                        "是否退出?","提示",JOptionPane.YES_NO_OPTION);
                if (tag == JOptionPane.NO_OPTION){
                    
                }
                else if (tag == JOptionPane.YES_OPTION){
                    try {
                        PrintWriter pw=new PrintWriter(new FileOutputStream("log"+File.separator+"log.log", true));
                        pw.println(InfoWindows.getInfo());
                        pw.close();
                        System.exit(0);
                    } catch (FileNotFoundException e1) {
                        // TODO Auto-generated catch block
                        e1.printStackTrace();
                    }
                }
            }
        });
        showInfo.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
                InfoWindows.getWin().setVisible(true);

            }
        });

        pm.add(startMenu);

        pm.add(addByDate);
        pm.add(stopMenu);
        pm.add(showInfo);
        pm.addSeparator();
        pm.add(exitMenu);
    }

    private void init() {
        setLayout(null);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setSize(WINDOW_WIDTH, WINDOW_HEIGHT);
        setVisible(false);
    }
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值