2012-01-30 1 views
1

異なるレイアウトのパネルがたくさんある1つのJavaデスクトップアプリケーションを開発しています。新しいレイアウトをパネルに設定するときは、常に新しいレイアウトを作成します。例えば。デスクトップアプリケーションのレイアウト

JPanel panel = new JPanel(new GridLayout(0, 1)); 

は、いくつかのLayoutFactoryを作成し、ここに私が必要と、その後のパネルに設定されているすべてのレイアウトを作成するための正しい解決策ですか?

+0

http://docs.oracle.com/javase/tutorial/uiswing/index.html –

+0

工場は不要です(一部は共有することもできません) – kleopatra

+0

と共有できるレイアウトは何ですか? E.GプロジェクトでflowLayoutを検索すると、このレイアウトのインスタンスを約30個作成していることが分かりました。 – hudi

答えて

2

1)新しいGridLayout(0, 1)でのJPanelを敷設する最も簡単な方法は、コンテナの各Nested LayoutによってJComponentsを築くある)、この場合、あなたは全体のJPanel

2のために一つだけJComponentを置き、BoxLayoutを使用してBorderLayout.CENTERまたはできるだけ同じにする必要があります全体contaiのために時間ごとJComponentsを置いて)ほとんどの場合(可能であるGridBagLayoutまたはMigLayoutを使用することによって異なるLayoutManager、同じLayoutManagerまたはその組み合わせ

3)を持つことができますまたはJPanel

+0

#1 'GridLayout(0,1)'は 'BorderLayout.CENTER'とは異なります。これは、1つの列を持つレイアウトを定義し、要素と同じ数の行が追加されます。 'GridLayout(1,1)'でさえ、要素が追加されたときに1つのセルしか持たず、列を動的に追加します。 'BoxLayout'は異なる効果を持ち、コンポーネントのサイズを変更しません。 #3 JGoodies FormLayoutはこの目的のための良い選択肢です。 –

0

hudiコードをより簡潔にしたい場合は、レイアウトを作成して割り当てるヘルパーメソッドを書くことができます。 1つのクラスのみでレイアウトを設定する場合、ヘルパーメソッドはそのクラスのメソッドにすることができます。または、さまざまなクラスのレイアウトを設定する場合は、共通のスーパークラス(ある場合)にprotectedヘルパーメソッドを追加するか、ユーティリティクラスにstaticメソッドを追加することができます。

コードの詳細を投稿すると、より具体的な提案ができます。

関連する問題