处理自动创建的退出按钮?

时间:2017-05-13 07:52:32

标签: java swing listener jbutton

我正在构建一个文本编辑器,我不知道如何在Swing退出按钮上处理一个监听器,这是自动创建的。 我想在用户不保存文件时使用对话框,例如按退出按钮。

3 个答案:

答案 0 :(得分:1)

final JFrame f = new JFrame("Good Location & Size");
// make sure the exit operation is correct.
f.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE); 
f.addWindowListener( new WindowAdapter() {
    public void windowClosing(WindowEvent we) {
        // pop the dialog here, and if the user agrees..
        System.exit(0);
    }
});

如此answer to Best practice for setting JFrame locations所示,它将帧位置和序列序列化。退出前的大小。

答案 1 :(得分:0)

逐步进行:

  1. 声明一个布尔变量saved并将其默认值设置为false。
  2. 当用户保存文件时,将其更改为true
  3. 按下退出按钮时,检查变量。
  4. 如果true,请退出,否则,提示用户保存文件。
  5. 所以,最后这段代码如下:

    public boolean saved = false;
    
    saveButton.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
            saved = true;
            //Code to save file
        }
    });
    
    exitButton.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
            if(saved)
                System.exit(0);
            else {
                //Code to prompt user to save file
            }
        }
    });
    

答案 2 :(得分:0)

假设您的窗口有句柄,假设它是Window对象(例如JFrame或其他类型的窗口),您可以收听WindowEvent个事件。以下是windowClosed的示例,如果您之前需要拦截它,可以将其替换为windowClosing

    frame.addWindowListener(new WindowAdapter() {
        @Override
        public void windowClosed(WindowEvent e) {
            // do something here
        }
    });