我遇到了一个调用setdefaultcloseoperation()而不引用任何对象的代码。我读到参考对象调用方法。这是代码
public class Mainpage extends JFrame implements ActionListener{
JFrame f = new JFrame("Mainpage");
public Mainpage() {
super("Mainpage");
f.setSize(1000,6000);
f.getContentPane().setLayout(null);
f.setVisible(true);
setDefaultCloseOperation(EXIT_ON_CLOSE); // how is this happening?
}
我想知道setDefaultCloseOperation(EXIT_ON_CLOSE);
是如何运作的。感谢。
答案 0 :(得分:4)
方法setDefaultCloseOperation
引用JFrame
的当前实例。
一些旁注:
1)此处不需要第二个JFrame
f
:
public class Mainpage extends JFrame implements ActionListener{
public Mainpage(){
super("Mainpage");
setSize(1000,6000);
...
setDefaultCloseOperation(EXIT_ON_CLOSE);
setVisible(true);
}
2)避免使用null
布局。请参阅Doing Without a Layout Manager。
答案 1 :(得分:4)
你扩展了JFrame
。所以从本质上讲,你正在做this.setDefaultOperation(EXIT_ON_CLOSE)
。
在JFrame
内创建JFrame
也没有意义..除非这是你的实验。简单的答案是不要扩展JFrame,并使用
f.setDefaultOperation(EXIT_ON_CLOSE)
。