2012-03-22 7 views
1

私はあなたがJFrameの上、これを行うことができますなぜ実際の理由が何であるかを思ったんだけど:Javaのスーパークラスを呼び出し、標準的な方法を用いて

super("My Frame"); 

そして、それは同じです:

setTitle("My Frame"); 

彼らは同じことをしていると思っていますが、実際にはそれぞれ何が起こっていますか?継承されたメソッドを単に使うのではなく、なぜスーパークラスを呼び出すのですか?

答えて

2

JFrameでそれについての詳細を学ぶことができますが、あなたがそれに従っている場合、そのコンストラクタでそれが言うところ

public JFrame(String title) throws HeadlessException { 
     super(title); 
     frameInit(); 
    } 

は、あなたが最終的にjava.awt.Frameクラスに到達言うコンストラクタを持っています

public Frame(String title) throws HeadlessException { 
     init(title, null); 
    } 

誰の初期化方法が:

private void init(String title, GraphicsConfiguration gc) { 
    this.title = title; 
    SunToolkit.checkAndSetPolicy(this, false); 
} 

ボトムラインでは、特定のコンストラクタを呼び出すだけであるため、スーパーを使用します。指定された文字列を受け取らない他のJFrameコンストラクタのいずれかを使用する場合は、提案するように手動でタイトルを設定できます。

関連する問題