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) 2 番目JFrame fはここでは不要です。

public class Mainpage extends JFrame implements ActionListener{

public Mainpage(){
   super("Mainpage");
   setSize(1000,6000);
   ...
   setDefaultCloseOperation(EXIT_ON_CLOSE);
   setVisible(true);
}

null2)レイアウトの使用を避ける。Layout Manager を使用しないで行うを参照してください。

于 2012-11-28T16:30:28.653 に答える
4

さて、あなたは拡張しJFrameました。つまり、本質的にあなたはやっていthis.setDefaultOperation(EXIT_ON_CLOSE)ます。

また、これがあなたの実験でない限り、 ..のJFrame中に aを作成していることは意味がありません。JFrame簡単な答えは、JFrame を拡張せず、 f.setDefaultOperation(EXIT_ON_CLOSE).

于 2012-11-28T16:30:35.510 に答える