4

jframe.getContentPane().add(button); と書く必要があります。

しかし、書くだけでも機能することがわかりました

jframe.add(ボタン);

2 つのアプローチの違いは何ですか? JFrame.getContentPane().add(button); と書くのが有利ですか? ?

4

4 に答える 4

3

それは好みの問題です。私は常に getContentPane().add(..) を使用します。これは、実際に何が起こっているのかを読みやすく、理解しやすいと思うからです。

于 2012-07-05T18:20:19.823 に答える
2

これを試して........

Java 1.5 が登場する前は、 jframe.getContentPane().add(button) が使用されていました.....そしてそれが合法的な方法でした....

しかし、Java 1.5 以降では、myframe.add(button)... もそれを行う合法的な方法の 1 つとして含まれていました。それと 同じように、Classname を使用して静的変数にアクセスすることは、それを行う正当な方法です。 ..しかし、クラスインスタンスを使用して静的変数にアクセスすることはできます...

于 2012-07-05T18:26:25.000 に答える
1

JButtonしたがって、などの要素をメソッドJTextAreaに追加する必要があることを知っておく必要がContainerあります。

getContentPane()

Containerこのフレームのオブジェクトを返します。したがって、どちらのアプローチも同じように機能しますが、2 番目のアプローチを使用する必要があります。

多くの要素を含む大きなアプリケーションがある場合、最初のアプローチは読みにくく、2 番目のアプローチが一般的に推奨されます。

違いは次のとおりです。

Jframe.add() - 指定されたコンポーネントをこのコンテナの末尾に追加します。これは Container.addImpl の便利なメソッドです。

于 2012-07-05T18:23:33.093 に答える
1

クラスjavadocはJFrame、これについてかなり明確です

JFrame クラスは Frame とは少し互換性がありません。他のすべての JFC/Swing トップレベル コンテナと同様に、JFrame には JRootPane が唯一の子として含まれています。ルート ペインによって提供されるコンテンツ ペインには、原則として、JFrame によって表示されるすべての非メニュー コンポーネントを含める必要があります。これは、AWT フレームの場合とは異なります。便利な add とそのバリアントとして、remove と setLayout がオーバーライドされ、必要に応じて contentPane に転送されます。これは、次のように記述できることを意味します。

   frame.add(child);

そして子が contentPane に追加されます。

于 2012-07-05T18:31:25.327 に答える