java中EXIT_ON_CLOSE字段的调用问题?

2023-05-31 综合 29阅读

具体的可以查看源代码,JFrame的setDefaultCloseOperation:

public void setDefaultCloseOperation(int operation) {
    if (operation != DO_NOTHING_ON_CLOSE &&
        operation != HIDE_ON_CLOSE &&
        operation != DISPOSE_ON_CLOSE &&
        operation != EXIT_ON_CLOSE) {
        throw new IllegalArgumentException("defaultCloseOperation must be one of: DO_NOTHING_ON_CLOSE, HIDE_ON_CLOSE, DISPOSE_ON_CLOSE, or EXIT_ON_CLOSE");
    }
    。。。。。。
}

也就是说,参数是个int类型,但只接受DO_NOTHING_ON_CLOSE 、HIDE_ON_CLOSE 、DISPOSE_ON_CLOSE 、EXIT_ON_CLOSE四个值,这四个值是常量

public static final int DO_NOTHING_ON_CLOSE = 0;
public static final int HIDE_ON_CLOSE = 1;
public static final int DISPOSE_ON_CLOSE = 2;
public static 历裂final int EXIT_ON_CLOSE = 3;

不一定非要用JFrame.EXIT_ON_CLOSE ,也可以用WindowConstants.EXIT_ON_CLOSE。因为JFrame类实现了WindowConstants接口,而WindowConstants定义的这四个属性的值和JFrame一样。

其实直接用setDefaultCloseOperation(3);也是可以罩烂顷的,只是不直观,不推荐。

因为你这个类继承了JFrame,所物陆以可以直接调用父类(即JFrame)的所有public属性,所以直接写EXIT_ON_CLOSE 也不会报错。

声明:你问我答网所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流。若您的权利被侵害,请联系fangmu6661024@163.com