1

我遇到了一个调用 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);工作。谢谢。

4

2 回答 2

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布局。请参阅不使用布局管理器进行操作。

于 2012-11-28T16:30:28.653 回答
4

好吧,你扩展了JFrame。所以本质上你在做this.setDefaultOperation(EXIT_ON_CLOSE).

JFrame此外,您正在创建一个内部..也没有任何意义,JFrame除非这是您的实验。简单的答案是不要扩展 JFrame,而是使用 f.setDefaultOperation(EXIT_ON_CLOSE).

于 2012-11-28T16:30:35.510 回答