3

私はSwingsを学んでいますが、この1行で混乱しています

GroupLayout layout=new GroupLayout(getContentPane());

今、私は2つの質問があります

  1. getContentPane() は何を返しますか。[ドキュメントを見て、さらに混乱しました]
  2. なぜ GroupLayout に渡すのですか。つまり、 getContentPane() を Group Layout に使用する方法を意味します
4

2 に答える 2

6

getContentPane() は何を返しますか

コンポーネントのコンテンツ ペインを返します

  • 画面に表示するには、すべての GUI コンポーネントが包含階層の一部である必要があります。包含階層は、ルートとして最上位のコンテナーを持つコンポーネントのツリーです。
  • 各 GUI コンポーネントは 1 回だけ含めることができます。コンポーネントがすでにコンテナにあり、それを別のコンテナに追加しようとすると、コンポーネントは最初のコンテナから削除され、次に 2 番目のコンテナに追加されます。
  • 各トップレベル コンテナーには、一般に、そのトップレベル コンテナーの GUI に表示されるコンポーネントが (直接的または間接的に) 含まれるコンテンツ ペインがあります。
  • 必要に応じて、最上位のコンテナーにメニュー バーを追加できます。メニュー バーは慣例により、最上位のコンテナー内に配置されますが、コンテンツ ペインの外側に配置されます。Mac OS のルック アンド フィールなど、一部のルック アンド フィールでは、画面の上部など、ルック アンド フィールに適した別の場所にメニュー バーを配置するオプションが提供されます。

詳細については、こちらをご覧ください。

なぜ GroupLayout に渡すのですか。つまり、 getContentPane() を Group Layout に使用する方法を意味します

これが GroupLayout の実装方法です。

コンストラクタ:

GroupLayout(Container host)

指定された Container の GroupLayout を作成します。詳細については、 javadoc を参照してください。

于 2013-08-13T09:49:24.010 に答える
2
  1. getContentPane() は何を返しますか。[ドキュメントを見て、さらに混乱しました]

    JFrame の getContentPane() 関数は、JFrame で必要な他のコンポーネントを追加できる Container オブジェクトを返します。

  2. なぜ GroupLayout に渡すのですか。つまり、 getContentPane() を Group Layout に使用する方法を意味します

    GroupLayout レイアウト=新しい GroupLayout(getContentPane());

機能は

/**
 * Creates a {@code GroupLayout} for the specified {@code Container}.
 *
 * @param host the {@code Container} the {@code GroupLayout} is
 *        the {@code LayoutManager} for
 * @throws IllegalArgumentException if host is {@code null}
 */
public GroupLayout(Container host) {
    if (host == null) {
        throw new IllegalArgumentException("Container must be non-null");
    }
    honorsVisibility = true;
    this.host = host;
    setHorizontalGroup(createParallelGroup(Alignment.LEADING, true));
    setVerticalGroup(createParallelGroup(Alignment.LEADING, true));
    componentInfos = new HashMap<Component,ComponentInfo>();
    tmpParallelSet = new HashSet<Spring>();
}

このコンストラクター ステートメントは、指定されたコンテナーの GroupLayout を作成します。

于 2013-08-13T09:51:00.923 に答える