zoukankan      html  css  js  c++  java
  • 关闭窗口时弹对话框,点否就不关闭——的方法

      弹对话框的方法当然是让框架实现WindowListener,注意不是WindowsListener,然后重写windowClosing()方法,让窗口在正在关闭的时候弹一个窗口。

      一个窗口:

    int answer = JOptionPane.showConfirmDialog(this, "blah", "blah", JOptionPane.YES_NO_OPTION);

      注意对话框是要静态引用的,不需要new一个JOptionPane出来。

      后面用answer来if一下就不用说了,都是静态属性,YES_OPTION,NO_OPTION,CANCEL_OPTION,之类之类的。

      然后Yes就System.exit(0)。

      不过No,或者说else要单独说一下,单纯return的话因为框架已经在关闭中了,关掉对话框框架还是会继续关闭,所以我们要打断它。

      打断狗腿:

    this.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);

      半路给它set一下。

      据我观察,直接在框架初始化的时候设置是没用的,大概这个方法是一次性的吧。

      于是顺道介绍一下setDefaultCloseOperation()这个方法。

      参数里面有几个选项可选:

      1. EXIT_ON_CLOSE:关闭时调用System.exit(),整个关闭虚拟机,也就是说整个进程都结束掉了,应该用在最外面的,也就是主框架上。

      2. HIDE_ON_CLOSE:隐藏框架,依然保留在内存里,没实际使用过,大概在别处setVisible()一下就可以让它显示出来。

      3. DISPOSE_ON_CLOSE:处置(?)框架,取消框架显示的同时释放掉框架所占资源,和HIDE的区别是能释放内存,进程还会继续运行,可以用于子窗口。

      4. DO_NOTHING_ON_CLOSE:顾名思义,什么也不干,设置成这个的话不管怎么点叉都关不掉。

  • 相关阅读:
    POJ 3630 Phone List | Trie 树
    POJ 3974 Palindrome | 马拉车模板
    POJ 3422 Kaka's Matrix Travels | 最小费用最大流
    POJ 2195 Going Home | 带权二分图匹配
    POJ 3068 "Shortest" pair of paths | 最小费用最大流
    POJ 3686 The Windy's | 最小费用最大流
    洛谷 最小费用最大流 模板 P3381
    POJ 2987 Firing | 最大权闭合团
    POJ 3469 Dual Core CPU | 最小割
    POJ 3281 Dining | 最大流
  • 原文地址:https://www.cnblogs.com/chihane/p/3512808.html
Copyright © 2011-2022 走看看