首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Swing addWindowFocusListener

Swing addWindowFocusListener
EN

Stack Overflow用户
提问于 2014-10-27 17:54:34
回答 1查看 489关注 0票数 2

我有一个简单的Java应用程序。我想在关闭主窗口之前得到用户的确认。

这是我的密码:

代码语言:javascript
复制
package client_interface;

import java.awt.EventQueue;
import java.awt.GraphicsDevice;
import java.awt.GraphicsEnvironment;
import java.awt.Rectangle;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.JFrame;
import javax.swing.JOptionPane;

public class MainWindow {

    private JFrame frame;

    public static void main(String[] args) {
        EventQueue.invokeLater(new Runnable() {
            public void run() {
                try {
                    MainWindow window = new MainWindow();
                    window.frame.setVisible(true);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });
    }

    public MainWindow() {
        initialize();
    }

    private void setFrameSize(JFrame frame) {
        GraphicsDevice gd = GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice();
        int width = gd.getDisplayMode().getWidth();
        int height = gd.getDisplayMode().getHeight();
        frame.setBounds(new Rectangle(width/4, height/4, width/2, height/2));
        //frame.setExtendedState(JFrame.MAXIMIZED_BOTH);
    }


    private void initialize() {
        frame = new JFrame("Test");
        setFrameSize(frame);
        frame.addWindowFocusListener(new WindowAdapter() {
            public void windowClosing(WindowEvent e) {
                if (JOptionPane.showConfirmDialog(frame, 
                        "Are you sure to close this window?", "Really Closing?", 
                        JOptionPane.YES_NO_OPTION,
                        JOptionPane.QUESTION_MESSAGE) == JOptionPane.YES_OPTION){
                        System.exit(0);
                    }
            }
        });


    }

}

但似乎frame.addWindowFocusListener不起作用。

请告诉我添加事件windowClosing到我的帧的正确方法。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-10-27 17:56:58

替换

代码语言:javascript
复制
frame.addWindowFocusListener(new WindowAdapter() {

使用

代码语言:javascript
复制
frame.addWindowListener(new WindowAdapter() {

第一个是WindowFocusListener,当窗口获得焦点或失去焦点时将调用它。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26593768

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档