关闭子窗口后,父窗口也跟着关闭。
如果想关闭子窗口而不关闭父窗口,那么将子窗口设置为
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
JFrame.EXIT_ON_CLOSE表示使用的是System.exit(0)方法退出程序,所以如果任意一个子窗口用了这个,点击叉关子窗口都会关闭程序。
实现:如果子窗口设置为setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);关闭子窗口后,父窗口也跟着关闭。如果想关闭子窗口而不关闭父窗口,那么将子窗口设置为setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);JFrame.EXIT_ON_CLOSE表示使用的是System.exit...
1、你在主frame类里调用jpanel的时候传一个this(JFrame)过去不就行了,在那个jpanel里就可以直接用这个frame的对象了。
2、你的
子
窗口
关闭
命令用的是不是System.exit(0);
方法,这个命令不是销毁
窗口
,他是
关闭
java
虚拟机,不管你运行什么
java
程序都会
关闭
的。想
关闭
当前的
窗口
就用,
窗口
销毁命令dispose()。
注意:在继承Jframe的过程中,由于工具的快捷功能可以会继承到Frame类,继承到Jframe类打开的
窗口
默认是可以
关闭
的,而Frame类打开的
窗口
点了
关闭
的没有反应的。
1、
关闭
子
窗口
后,
父
窗口
也跟着
关闭
,
子
窗口
设置为:
setDefaultCloseOption(Jframe.Exit_ON_CLOSE);
2、只
关闭
子
窗口
,
子
窗口
设置为:
setDefaultCloseOption(Jframe.DISPOSE_ON_CLOSE);
3、dispose()方法,如果是继承的JFr.
在编程之中,碰见的一个问题,感觉很简单,但是却由于那点知识的欠缺才会出错。
我碰见的有两种情况
子
窗口
关闭
导致
父
窗口
也
关闭
!下面简单介绍一下。。
一种是常规的,
java
原装类库引起的最常见的:
import
java
.awt.event.ActionEvent;
import
java
.awt.event.ActionListener;
import
java
x.
swing
.JButton
当由一个
窗口
引起其它
窗口
的打开,然后任意
关闭
一个
窗口
其它
窗口
都会全部
关闭
由setDefaultCloseOperation()的默认参数JFrame.EXIT_ON_CLOSE变为:JFrame.DISPOSE_ON_CLOSE
前者是
关闭
一个其余均
关闭
完,后者是仅
关闭
点击了
关闭
按钮的
窗口
。还有一个值为JFrame.DO_NOTHING_ON_CLOSE,意为点了
关闭
之后什么反应也不做。
frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CL
JComponent类
官方API:https://docs.oracle.com/
java
se/tutorial/ui
swing
/components/jcomponent.html#complookapi
除顶级容器外,名称以“J”开头的所有
Swing
组件都从 JComponent该类开始。例如JPanel,JScrollPane,JButton,和JTable所有的继承JComponen...
JInternalFrame[] frames = desktopPane.getAllFrames();
// 遍历
子
窗口
并
关闭
for (JInternalFrame frame : frames) {
frame.dispose();
如果只想
关闭
当前激活的
子
窗口
,可以使用以下代码:
```
java
// 获取当前激活的
子
窗口
JInternalFrame frame = desktopPane.getSelectedFrame();
//
关闭
子
窗口
if (frame != null) {
frame.dispose();