JAVA问题?

frame.setDefaultCloseOperation(EXIT_ON_CLOSE);这个在什么时候使用?为什么我在main方法里面用这个方法想去关闭窗口,报错说没有为类型Frame定义方法setDefaultCloseOperation(int)

1
setDefaultCloseOperation不是用来直接关闭窗口的,而是当你点击窗口右上角的关闭按钮或选择系统菜单的关闭菜单时,指定窗口的响应行为。当点击关闭按钮或选择了关闭菜单时,窗口默认的响应行为是隐藏自己。但可以通过setDefaultCloseOperation来改变窗口对关闭事件的响应,比如:setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);就设置成当窗口关闭时,结束进程,即退出程序。

2
setDefaultCloseOperation是类JFrame的方法,不是类Frame的方法,Frame类的对象当然不能调用这个方法。

3
EXIT_ON_CLOSE是类JFrame的公共静态最终字段(public static final),引用这个字段,要加类前缀,用这种形式:JFrame.EXIT_ON_CLOSE。

下面是一个例子,供参考
import java.awt.*;
import javax.swing.*;
public class Demo extends JFrame
{
public static void main(String[] args)
{
new Demo();
}
Demo()
{
JPanel p1=new JPanel(),p2=new JPanel(),p3=new JPanel();

p1.add(new JButton("Button 1"));
p2.add(new JButton("Button 2"));
p2.add(new JButton("Button 3"));
p3.add(new JButton("Button 4"));
p3.add(new JButton("Button 5"));
p3.add(new JButton("Button 6"));
setLayout(new GridLayout(3,1));
add(p1);
add(p2);
add(p3);
setTitle("一个Java窗口");
pack();
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null);
setVisible(true);
}
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2021-05-12
:点击datagridview某条信息弹出信息详情窗口,当连续点击时需要关闭之前的详情窗口。实现方式:父窗口中全局创建子窗口(MsgDetailFrm ): M
第2个回答  2020-06-19
如果不设置默认关闭操作, 在你点击窗口标题上的关闭按钮后, 应用是不会关闭的, 进程会一直存在的
setDefaultCloseOperation(EXIT_ON_CLOSE)
就是设置点了关闭按钮后, 彻底退出
相似回答