2

ここで簡単な質問です。多数の JPanel を作成する必要があるプログラムがあり、それぞれにいくつかのオブジェクト (通常は JLabels) が含まれます。

新しい JPanel を作成するたびに実行しなければならない操作がいくつかあります。それらを実行する順序に関係があるのか​​ 、それとも標準的な慣行があるのか​​ 疑問に思っています。

私が行う操作は次のとおりです。

JPanel を宣言します。 JPanel panel = new JPanel(...)

JLabel を宣言します。 JLabel labell = new JLabel...

JPanel を他のコンテンツ ペインに追加します: frame.getContentPane().add(panel)

JPanel の境界を設定します: panel.setBounds(...)

JLabel を JPanel に追加します: panel.add(label)

4

3 に答える 3

3

一般に、すべてのコンポーネントをパネルに追加し、フレームを表示する「前に」パネルをコンテンツ ペインに追加する限り、順序は重要ではありません。

標準的な方法は、レイアウト マネージャーを使用することです。そのため、コンテンツ ペインに追加したパネルの境界を設定する必要はありません。

于 2010-03-07T06:10:12.030 に答える
3

順番は関係ありません。ただし、addすべてを作成して ing した後revalidate()、パネル (またはpack()その親ウィンドウ) で呼び出して、レイアウト マネージャー (使用していると思われます) がコンポーネントを適切に配置するようにする必要があります。

于 2010-03-07T06:12:44.443 に答える
2

すべての子が追加されたパネルを返す createPanel() メソッドを用意します。

Panel p = createPanel();
p.setBounds(...); // if you must
frame.getContentPane().add(p);

その後

Panel createPanel() {
  Panel p = new Panel();
  Label l = new Label("Heading");
  p.add(l);
  return p;
}

項目を作成して追加する順序は重要ではありませんが、子を追加するときaddは、パネル内で必要な順序にする必要があります。

于 2010-03-07T06:10:42.433 に答える