关闭窗口后,我想创建一个类的对象并执行任务。关闭后:
setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
我该怎么做才能在窗口关闭后立即开始新操作?请帮忙。
关闭窗口后,我想创建一个类的对象并执行任务。关闭后:
setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
我该怎么做才能在窗口关闭后立即开始新操作?请帮忙。
当用户尝试关闭 aJFrame
时,会发生以下事件:
windowClosing
方法。WindowListener
setDefaultCloseOperation
触发指定的动作。有 4 个默认关闭操作:
……什么都不做。框架还在这里,很高兴地忽略了您关闭它的请求。
setVisible(false)
与调用框架的效果相同。框架变得不可见,并且可以通过调用再次显示setVisible(true)
。
dispose()
与调用框架的效果相同。效果有点类似于HIDE_ON_CLOSE,不同的是这次释放了frame使用的OS资源。setVisible(true)
如果您想让框架再次出现,您仍然可以再次调用。
调用在该帧上注册的 s的windowClosed
方法。WindowListener
另外,请注意,当最后一个可显示窗口被处理掉时,您的程序可能会终止。
与调用相同的效果System.exit()
。
因此,如果您想完全控制用户尝试关闭框架时发生的情况,请将默认操作设置为 DO_NOTHING_ON_CLOSE,并将您的代码windowClosing
放入WindowListener
. 在那里,您可以调用 setVisible(false)、dispose() 或 System.exit(),具体取决于您想要实现的目标。
您还可以将默认操作设置为隐藏、处置或关闭时退出,并将您的代码windowClosing
放在WindowListener
. 在这种情况下,将首先调用侦听器,然后无论如何都会执行所选操作。
最后,您还可以将默认操作设置为 DISPOSE_ON_CLOSE,并将您的代码windowClosed
放在WindowListener
. 这样,首先处理框架(它从屏幕上消失),然后执行您的代码。
称呼
frame.setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE);
并为关闭事件注册一个监听器:
frame.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
JFrame frame = (JFrame)e.getSource();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// additional code here
}
});
After i close my window,i want to create an object of a class and preform a task.
看着
HIDE_ON_CLOSE
simplair as setVisible(false);
,容器是可重复使用的,可以通过调用来显示它setVisible(true);
或者您可以调用dispose()
,这意味着此容器不可重复使用,必须isDisplayable()
在调用之前检查setVisible(true);
我想创建一个类的对象并执行一个任务