2011-12-28 13 views
0

実行時にJPanelにいくつかのJCheckBoxコンポーネントを追加します。
私の問題は、これらすべてのコンポーネントが同じ場所に追加されてしまうことです。
彼らはお互いに表示されています。
自動配置用に設定する方法はありますか?
JPanelで前のコンポーネントの隣に場所があり、私はそれらを手動で配置する必要がなくなりました。JavaのJPanelの自動配置コンポーネント

ありがとうございました

+1

使用しているLayoutManagerはどれですか。 LayoutManagerに関するSwingのチュートリアルは良い出発点です。使用できるレイアウトの一部を示しています(例: 'FlowLayout')。 http://docs.oracle.com/javase/tutorial/uiswing/layout/using.htmlを参照してください。 – Robin

答えて

2

短い答えは、LayoutManagerを使用しています。しかし、LayoutManagerは必要なものによって非常に異なった働きをします。動的なチェックボックスをどのように配置するかを知る必要があります。あなたのUIは、潜在的にN個のチェックボックスを吸収する拡張可能な部分になります。どのようにコンポーネントを視覚的にレイアウトしたいのかわからないと、あなたの状況に最も適したレイアウトマネージャはあなたには本当にアドバイスできません。

LayoutManagersについての一般的な助言は、TableLayoutは非常に動的なコンポーネントです。それは非常にまっすぐで、まだ非常に強力です。 GridLayoutやMigLayoutというよりも、GridBagLayoutというよりも動作が良く、必要なコードがはるかに少なくて済みました。それを入手し、それを使用する方法を学び、本当にあなた自身に尋ねます。

私は本当に、チェックボックスのUIを動的に構築する必要がありますか?これは、CardLayoutの一連の単純なパネルで行い、いくつかの入力に基づいて切り替えることができますか?これは実行時のコントロールの動的レイアウト)。

http://java.net/projects/tablelayout

JPanel panel = new JPanel(new TableLayout(...)); // sets the LayoutManager used by JPanel 
panel.add(new JCheckBox(), "1 2"); // add to row 1 column 2 

あなたは画像を取得します。