0

JPanel で使用するレイアウトを決めるのに苦労しています。ここで描画しようとしたものと同じように見える JPanel が必要です。

|-----------------------|
|       Some JLabel     |
|                       |
|  JLabel |JTextField|  |
|  JLabel |JTextField|  |
|  JLabel |JTextField|  |
|-----------------------|

FlowLayout の使用を考えていましたが、コンポーネントを次の行に手動で設定する方法がわかりません。私は GridLayout を試してみましたが、ある程度成功しましたが、探していたものではありませんでした。これは、私がこれまでに持っているこの JPanel のコードです。

JPanel mainPanel = new JPanel();
mainPanel.setLayout(new GridLayout(4, 1));
JLabel description = new JLabel("description..");

JLabel label1 = new JLabel("label1");
JLabel label2 = new JLabel("label2");
JLabel label3 = new JLabel("label3");       

JTextField field1 = new JTextField(25);
JTextField field2 = new JTextField(25);
JTextField field3 = new JTextField(25);

mainPanel.add(description);
mainPanel.add(label1);
mainPanel.add(field1);
mainPanel.add(label2);
mainPanel.add(field2);
mainPanel.add(label3);
mainPanel.add(field3);

ありがとう!

4

2 に答える 2

3

1 つのレイアウト マネージャーだけを使用する必要はありません。それぞれ独自のレイアウト マネージャーを備えた複数のパネルを使用できます。

ただし、この場合、GridBagLayout が最も簡単な場合があります。まず、Swing チュートリアルのGridbagLayoutの使用方法に関するセクションを読んで、実際の例とすべての制約の説明を読んでください。

于 2013-10-31T05:12:05.053 に答える
2

を使用しGridBagLayoutてこれを実現することもできますがBorderLayout、タイトルをその位置に配置し、そのNORTH位置に を使用して、フィールドを含む別のパネルを配置して、単純に を使用する方が簡単な場合があります。GridLayoutCENTER

もちろん、最終的な結果はあなたが望むものになります。

A Visual Guide to Layout Managersを参照して、さらにアイデアを見つけてください。複合レイアウトを使用することを恐れないでください。

于 2013-10-31T05:11:45.660 に答える