Java 关闭对话框窗口的可选方式
我正在使用一个定制的JFrame在我正在开发的Java应用程序中实现一个简单的对话框 用户按下窗口中的“应用”按钮后,它应关闭Java 关闭对话框窗口的可选方式,java,swing,jdialog,Java,Swing,Jdialog,我正在使用一个定制的JFrame在我正在开发的Java应用程序中实现一个简单的对话框 用户按下窗口中的“应用”按钮后,它应关闭 最传统的方法是什么?setVisible(false)在类内部是最好的方法吗?还有什么方法更值得推荐吗?这取决于你想要达到的目标。将窗口设置为不可见只会将其隐藏,但它仍将在后台运行(JFrame/InternalFrame)。您可以使用JDialog(以JOptionPane为例)创建临时框架,当单击其中一个按钮时,这些框架将真正关闭。您还可以在用户关闭窗口时检索所选选
最传统的方法是什么?
setVisible(false)
在类内部是最好的方法吗?还有什么方法更值得推荐吗?这取决于你想要达到的目标。将窗口设置为不可见只会将其隐藏,但它仍将在后台运行(JFrame/InternalFrame)。您可以使用JDialog(以JOptionPane为例)创建临时框架,当单击其中一个按钮时,这些框架将真正关闭。您还可以在用户关闭窗口时检索所选选项(此处:)。您还可以通过触发事件关闭窗口来强制关闭窗口,如下所示:
Toolkit.getDefaultToolkit().getSystemEventQueue().postEvent(
new WindowEvent(frame, WindowEvent.WINDOW_CLOSING)
)
例如,在actionlistener内部。这取决于您试图实现的目标。将窗口设置为不可见只会将其隐藏,但它仍将在后台运行(JFrame/InternalFrame)。您可以使用JDialog(以JOptionPane为例)创建临时框架,当单击其中一个按钮时,这些框架将真正关闭。您还可以在用户关闭窗口时检索所选选项(此处:)。您还可以通过触发事件关闭窗口来强制关闭窗口,如下所示:
Toolkit.getDefaultToolkit().getSystemEventQueue().postEvent(
new WindowEvent(frame, WindowEvent.WINDOW_CLOSING)
)
例如,在actionlistener内部。关闭JFrame时,可以执行多个操作 假设你有一个JFrame
JFrame frame = new JFrame();
这一个在关闭时退出JVM
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
这个只是隐藏了JFrame
frame.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);
frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
这一个处理JFrame
frame.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);
frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
当Java虚拟机(VM)中的最后一个可显示窗口被释放时,VM可能会终止
默认情况是什么也不做
frame.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
关闭JFrame时可以执行多个操作 假设你有一个JFrame
JFrame frame = new JFrame();
这一个在关闭时退出JVM
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
这个只是隐藏了JFrame
frame.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);
frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
这一个处理JFrame
frame.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);
frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
当Java虚拟机(VM)中的最后一个可显示窗口被释放时,VM可能会终止
默认情况是什么也不做
frame.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
要在Swing like或中关闭窗口,您有两个选项 调用dispose() 只需调用方法: 释放此窗口使用的所有本机屏幕资源 子组件及其所有拥有的子组件。即资源 因为这些组件将被销毁,它们消耗的任何内存都将被销毁 返回到操作系统,并将其标记为不可发布 例如:
frame.dispose();
dialog.dispose();
发送一个
窗口关闭事件
您可以按如下方式发送新邮件:
frame.dispatchEvent(new WindowEvent(frame, WindowEvent.WINDOW_CLOSING));
dialog.dispatchEvent(new WindowEvent(dialog, WindowEvent.WINDOW_CLOSING));
如果窗口已附加一个标签,则将通知它。如果设置了框架(或对话框)的默认关闭操作,则将执行此操作。可能的关闭操作包括:
- (在
WindowConstants
中定义):不要做任何事情;
要求程序处理窗口关闭中的操作
注册的WindowListener对象的方法
- (在
窗口常量中定义):自动隐藏
调用任何已注册的WindowListener对象后的帧
- (在WindowConstants中定义):自动隐藏和
在调用任何已注册的WindowListener后处理帧
对象
- (在
JFrame
中定义,不适用于JDialog
):使用系统退出方法退出应用程序。仅在应用程序中使用此选项
要关闭Swing like中的窗口,您有两个选项
调用dispose()
只需调用方法:
释放此窗口使用的所有本机屏幕资源
子组件及其所有拥有的子组件。即资源
因为这些组件将被销毁,它们消耗的任何内存都将被销毁
返回到操作系统,并将其标记为不可发布
例如:
frame.dispose();
dialog.dispose();
发送一个
窗口关闭事件
您可以按如下方式发送新邮件:
frame.dispatchEvent(new WindowEvent(frame, WindowEvent.WINDOW_CLOSING));
dialog.dispatchEvent(new WindowEvent(dialog, WindowEvent.WINDOW_CLOSING));
如果窗口已附加一个标签,则将通知它。如果设置了框架(或对话框)的默认关闭操作,则将执行此操作。可能的关闭操作包括:
- (在
WindowConstants
中定义):不要做任何事情;
要求程序处理窗口关闭中的操作
注册的WindowListener对象的方法
- (在
窗口常量中定义):自动隐藏
调用任何已注册的WindowListener对象后的帧
- (在WindowConstants中定义):自动隐藏和
在调用任何已注册的WindowListener后处理帧
对象
- (在
JFrame
中定义,不适用于JDialog
):使用系统退出方法退出应用程序。仅在应用程序中使用此选项
JOptionPane
或JDialog
有什么问题?要关闭对话框或框架吗?@MadProgrammer关闭一个小jframeJOptionPane
或JDialog
有什么问题吗?要关闭对话框或框架吗?@MadProgrammer关闭一个小jframe谢谢:)为此,我只使用dispose()
+1如果/如果屏幕上已经有一个JFrame/JDialog/JWindow可见(可以通过setVisible(false)隐藏),请注意其他情况如果有最后一个指示灯,最后一个指示灯终止当前JVM谢谢:)为此,我将使用dispose()
+1如果/如果屏幕上已经有一个JFrame/JDialog/JWindow可见(可以通过setVisible隐藏(false)),请注意其他情况如果有最后一个指示灯,则最后一个指示灯终止当前JVM