java.swing 里面有没有什么函数可以判断窗口是否关闭
时间: 2024-03-10 12:49:06 浏览: 106
Java Swing中可以使用WindowListener接口和WindowAdapter类的方法来判断窗口是否关闭。
WindowListener接口是用来处理窗口事件的,包括窗口打开、激活、关闭、失去焦点等。其中,windowClosing()方法是在用户试图关闭窗口时调用的,可以在该方法中进行判断窗口是否关闭。具体实现代码如下:
```
public class MyWindowListener implements WindowListener {
@Override
public void windowClosing(WindowEvent e) {
// 在窗口关闭时进行判断
if (JOptionPane.showConfirmDialog(null, "是否关闭窗口?", "提示", JOptionPane.YES_NO_OPTION) == JOptionPane.YES_OPTION) {
// 关闭窗口
System.exit(0);
}
}
// 其他方法省略
}
```
上述代码中,我们在windowClosing()方法中使用JOptionPane.showConfirmDialog()来弹出一个对话框,询问用户是否关闭窗口。如果用户选择是,则调用System.exit(0)方法关闭窗口。
为了方便使用,Java Swing还提供了WindowAdapter类,该类实现了WindowListener接口,但是所有方法的实现都是空的。我们可以通过继承WindowAdapter类来实现自己的窗口事件处理类,避免在实现WindowListener接口时需要重写所有方法。例如:
```
public class MyWindowAdapter extends WindowAdapter {
@Override
public void windowClosing(WindowEvent e) {
// 在窗口关闭时进行判断
if (JOptionPane.showConfirmDialog(null, "是否关闭窗口?", "提示", JOptionPane.YES_NO_OPTION) == JOptionPane.YES_OPTION) {
// 关闭窗口
System.exit(0);
}
}
// 其他方法省略
}
```
在使用时,我们可以将MyWindowListener或MyWindowAdapter类的实例添加到要监听的窗口中,如下所示:
```
JFrame frame = new JFrame();
frame.addWindowListener(new MyWindowAdapter());
```
这样,就可以在窗口关闭时进行判断,避免窗口意外关闭。
阅读全文