【java】Swing的系统托盘设计

首先今天我们想来做一个关于java桌面级应用程序的系统托盘设计教程。

完整代码:

Image image = Toolkit.getDefaultToolkit().getImage("\\zbosszLOGO.jpg");
        if(SystemTray.isSupported()){
    
    
            //获取当前平台的系统托盘
            SystemTray tray = SystemTray.getSystemTray();
            //加载一个图片当作托盘图标
            PopupMenu popupMenu = new PopupMenu();

            MenuItem openItem = new MenuItem("打开");
            MenuItem exitItem = new MenuItem("退出");

            openItem.addActionListener(new ActionListener() {
    
    
                @Override
                public void actionPerformed(ActionEvent e) {
    
    
                    if(!LoginFrame.this.isShowing()){
    
    
                        LoginFrame.this.setVisible(true);
                        LoginFrame.this.setExtendedState(NORMAL);//这个窗口显示到面板
                    }
                }
            });
            exitItem.addActionListener(new ActionListener() {
    
    
                @Override
                public void actionPerformed(ActionEvent e) {
    
    
                    System.exit(0);
                }
            });
            popupMenu.add(openItem);
            popupMenu.add(exitItem);
            //创建系统托盘
            TrayIcon trayIcon = new TrayIcon(image,"GraduateSchoolInquirySystem",popupMenu);
            //托盘图标自适应尺寸
            trayIcon.setImageAutoSize(true);

            LoginFrame.this.addWindowListener(new WindowAdapter() {
    
    
                @Override
                //这个是窗口最小化事件
                public void windowIconified(WindowEvent e) {
    
    
                        try {
    
    
                            tray.add(trayIcon);
                        } catch (AWTException ex) {
    
    
                            throw new RuntimeException(ex);
                        }
                        loginFrame.setVisible(false);
                }
            });
            trayIcon.addMouseListener(new MouseAdapter() {
    
    
                @Override
                public void mouseClicked(MouseEvent e) {
    
    
                    if(e.getButton()==MouseEvent.BUTTON1) {
    
    //button3是右键,button1是左键
                        super.mouseClicked(e);
                        int clickedtimes = e.getClickCount();
                        if (clickedtimes == 1) {
    
    
                            LoginFrame.this.setVisible(true);
                            LoginFrame.this.setExtendedState(NORMAL);//这个窗口显示到面板
                        }
                        tray.remove(trayIcon);
                    }
                }
            });
        }

设计解说视频教程请点击这里

猜你喜欢

转载自blog.csdn.net/weixin_54130714/article/details/124822351