Java的。最小化到系统托盘

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java的。最小化到系统托盘相关的知识,希望对你有一定的参考价值。

我有一个应用程序检查密码,如果密码正确,应该最小化到系统托盘。但我不知道如何设置frame隐形或使用ActionListener最小化它。

public class MainWindow extends JFrame {
    private JPanel panel1;
    private JTextField Password;
    private JButton readyBtn;
    private JLabel label1;
    private JLabel label2;
    int count = 0;

    public MainWindow() {
        readyBtn.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                String password = Password.getText();
                if (password.equals("12345")) {
                    //minimize to system tray
                }
            }
        });
    }

    public static void main(String[] args) {
        JFrame frame = new JFrame("MainWindow");
        frame.setContentPane(new MainWindow().panel1);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        //frame.setExtendedState(JFrame.MAXIMIZED_BOTH);
        //frame.setUndecorated(true);
        frame.pack();

        TrayIcon trayIcon = new TrayIcon(Toolkit.getDefaultToolkit().getImage("res/lock.png"));
        trayIcon.setToolTip("Running...");
        trayIcon.addMouseListener(new MouseAdapter() {
            @Override
            public void mouseClicked(MouseEvent e) {
                super.mouseClicked(e);
                frame.setAlwaysOnTop(true);
                frame.setVisible(true);
                JOptionPane.showMessageDialog(null, "Clicked");
            }
        });

        try {
            SystemTray.getSystemTray().add(trayIcon);
        }catch (Exception e){
            System.out.println(e);
        }
    }
}
答案

您可以使用

frame.setExtendedState(JFrame.ICONIFIED);

以上是关于Java的。最小化到系统托盘的主要内容,如果未能解决你的问题,请参考以下文章

vc 如何实现关闭时最小化到托盘

delphi怎么写“最小化到系统托盘”(有控件最好)

C# 实现WinForm窗口最小化到系统托盘代码,并且判断左右鼠标的事件

最小化到系统托盘区是啥意思?

WPF - 将应用程序从系统托盘置于最前面

最小化到系统托盘区是啥意思?