3

私は Swing を使用して Java で基本的な UI を設計する任務を負っていますが、レイアウトに行き詰まっています。これに似たものを作成したいのですが、GridBagLayout を使用しようとすると、非常に厄介な結果が生じました。GUIをこのようにレイアウトする方法について、誰かがヒントを提供できますか?

2 つのタブを追加する JTabbedPane があり、これらの 2 つのタブのそれぞれに、コントロールを含む JPanel を追加します。 どのようにレイアウトしたいですか

4

4 に答える 4

4

私はそれをお勧めします

  • 全体的な GUI は BorderLayout を使用し、
  • JTable は JScrollPane にあり、これは BorderLayout.CENTER に配置する必要があります。
  • ラベル、フィールド、およびボタンを保持する最上位の JPanel は、BorderLayout.PAGE_START に配置されます。
  • 上部の JPanel も BorderLayout を使用でき、BorderLayout.PAGE_END の位置にボタンを保持できます。
  • ボタンは、JPanel を使用して GridLayout(1, 0, x, 0) によって保持されます。x はボタン間のギャップです。
  • ラベルと JTextField は、GridBagLayout を使用し、BorderLayout.CENTER 位置の最上位 JPanel に配置される JPanel にあります。
  • これらの推奨事項にやみくもに従うのではなく、それぞれ独自のレイアウトを使用して、ネストされた JPanel のさまざまな組み合わせを試したり、遊んだりすることをお勧めします。
  • このリンクもチェックしてください
于 2012-10-19T20:35:32.463 に答える
3

これが私がお勧めするものです:

  • JPanel pTextBoxGridLayout(3, 2) でa を使用して、すべてのラベルとテキストボックスを保持します
  • JPanel pButtonsGridLayout(1, 3) または BoxLayout(horizo​​ntal) を使用して、すべてのボタンを保持します
  • JPanel pAllBoxLayout(vertical) を使用してpTextBoxpButtonsと Table を保持します。
  • ストラット、接着剤、および最小/最大/優先サイズを使用して、間隔/サイズ変更動作を調整します。

http://docs.oracle.com/javase/tutorial/uiswing/layout/visual.htmlもチェックして、探しているものを正確に比較してください。

于 2012-10-19T20:40:51.660 に答える
2

ウィンドウ内のすべての使用可能なスペースを占有しようとする JTable というコンポーネントがあります。これは、その BorderLayout の BorderLayout.CENTER に JTable を含む JScrollPane を使用して、BorderLayout が必要になることを意味します。他のコンポーネントは、BorderLayout.PAGE_START の別の JPanel 内にあります。

この新しい JPanel には、縦方向にサイズを調整する必要があるコンポーネントがないため、BorderLayout の必要性がわかりません。垂直の BoxLayout で構成します。このパネルに、ラベルとテキスト フィールド用に GridBagLayout を 1 つ、ボタン用に FlowLayout を 1 つ、さらに 2 つ挿入します。メインパネルのサイズを変更すると、FlowLayoutを使用してボタンがボタン間で同じ距離を保つため、ボタンにはGridLayoutのFlowLayout insetadを好みます。

于 2012-10-19T21:40:37.577 に答える