1

ここにコードがあり、いくつかのコマンドが何をするのかわかりません:

//this bit is the body of the main method
//lots of stuff omitted
project frame = new project();
frame.createGUI();

private void createGUI() {
    setDefaultCloseOperation(EXIT_ON_CLOSE);
    panel = new JPanel();
}

が呼び出さframe.createGUI();れると、 の 2 つのコマンドはどうなるcreateGUI();でしょうか。彼らは

setDefaultCloseOperation(EXIT_ON_CLOSE);
panel = new JPanel();

また

frame.setDefaultCloseOperation(EXIT_ON_CLOSE);
frame.panel = new JPanel();

それともまったく別のものですか?私は Java の初心者で、今年は 12 年目のコンピューター サイエンスを始めましたが、クラスよりも少し進んでいます。

御時間ありがとうございます!

4

4 に答える 4

1
setDefaultCloseOperation(EXIT_ON_CLOSE);

ユーザーがウィンドウ (JFrame) を閉じたときに発生する動作を設定します。メソッドはJFrame用です。クラスが JFrame を拡張する場合setDefaultCloseOperation(EXIT_ON_CLOSE);は問題ありません。そうでない場合は JFrame のメソッドを呼び出すためですがframe.setDefaultCloseOperation(EXIT_ON_CLOSE);、プロジェクトが JFrame を拡張する場合、これは機能します。

panel = new JPanel();

これにより、新しいパネルが作成されます。

于 2013-04-01T09:22:36.027 に答える
1

Java のすべての非静的メソッドには、 という隠しパラメータがありますthis。その値は、呼び出しのドットの前にあるオブジェクトです。メソッド本体の内部では、他のメソッドの呼び出しが暗黙的this.にそれらの前に置かれます。ローカルで解決できない場合は、変数の使用も同様です。参照が明示的である場合、thisメソッドは次のようになります。

private void createGUI(project this) {
    this.setDefaultCloseOperation(this, EXIT_ON_CLOSE);
    this.panel = new JPanel();
}

メイン メソッドでの呼び出しでcreateGUI、実際に起こっていることは次のようなものです。

frame.createGUI(frame);

実行createGUI中のthis参照は への参照frameです。

于 2013-04-01T09:37:06.047 に答える
0

frame.createGUI();上記の行で定義したオブジェクトframeがメソッドを呼び出すことを意味しますcreateGUI()

setDefaultCloseOperation(EXIT_ON_CLOSE);これは、ユーザーがウィンドウの左上隅にある [X] ボタンをクリックすると、そのウィンドウが閉じられることを意味します。

少し実験してメソッドsetDefaultCloseOperation(EXIT_ON_CLOSE);から削除し、何が起こるかを確認できますcreateGUI()

詳細を知りたい場合は、こちらをご覧ください

于 2013-04-01T09:27:22.253 に答える