2011-12-14 6 views
3

システムのLookAndFeelごとにすべてのコンポーネントのサイズが同じですか?Java - システムLookAndFeel

UIManager.getSystemLookAndFeelClassName(); 

ない場合は、どのようなレイアウトタイプ有する構成要素は、各システム上の異なるサイズであることに対処するのが最善でしょうか?

ありがとうございました。

+2

推奨読書:http://docs.oracle.com/javase/tutorial/uiswing/layout/using.html – OscarRyz

答えて

7

あなたは尋ねる:

は、各システムのためのLook&Feel同じ大きさのすべてのコンポーネントはありますか?

いいえ、すべて同じサイズではありません。

もしそうでなければ、各システムでコンポーネントのサイズが異なることにどのレイアウトタイプが最も適していますか?

すべての人に最適なレイアウトはないので、この質問には簡単には言い表せません。それぞれ独自のレイアウトを使用し、サイズ変更時にレイアウトがうまく動作することを確認するネストコンテナからのベストあなたの最高のオフコンポーネントは、自分の好みのサイズを選択し、それを表示する前にあなたのGUIを梱包します。

BorderLayout、BoxLayout、GridLayout、FlowLayout、および時々GridBagLayoutを使用することを含め、基本レイアウトと単純レイアウトのミキシングが私にとって最適です。私は、NetBeanのデフォルトのGroupLayoutが、この種の問題に対して最も柔軟性がないことを発見しました。

+0

以前はコンテナを使用したことがありません。よく説明できるリンクはありますか? – Stripies

+3

@JonMannerberg:実際、あなたは持っています。コンテナ***から降下するものはすべてコンテナです。これには、JComponentとその子孫が含まれます。その多くは、JPanels、JButtons、JLabelsなどのかなり使い慣れたものです。これには、JFrames、JApplets、JDialogsなどのトップレベルのウィンドウも含まれます。 .. –

3

もしそうでなければ、各システムのコンポーネントのサイズが違うのはどのレイアウトタイプが最適ですか?

一般的に、私はあなたが「最良の単一選択」を心配していると思います。その場合、私はMETALのルックアンドフィールを提案します - 一般的に、OSの特定のルックスは異なるシステムでは奇妙です...複雑なフォームなどでスウィングを限界まで押していると、定期的な、古い学校、アプレットスタイルのルック・アンド・フィールが最善のものです。

レイアウトについて今

、:

フローとグリッドレイアウトは最も堅牢なの一部です...私はこれらを持つ任意の驚きを覚えていませんが、...彼らは退屈しています。

次に、タブ付きペインと組み合わせると、非常に堅牢なクロスプラットフォームの拡張可能なGUIを提供できるBoxLayoutがあります(これはJScrollPanesによって非常に優れています)。

GridBagLayoutのは、あなたがそれを

の仕組み理解していれば最後に、新しいオープンソース、GridLayout2のような非日のレイアウトマネージャ、およびNetBeans moeiteysのいくつかがあるにも堅牢です。これらは非常に便利ですが、多くのプラットフォームで展開する場合は注意が必要です。

pack()メソッドとrevalidate()メソッドが必要なときに適切に使用されている限り、標準のスイングレイアウトは異なるデフォルトのコンポーネントサイズを処理するのに適しています。 GUIが特に動的である場合、revalidate()メソッドは非常に重要です。

+2

GUIを適切にレイアウトする能力が不足していると、Metal PLAFを使用するにあたっての貧弱な言い訳です。 –

+1

それにもかかわらず、いくつかの良い提案 - 金属を使用するための推奨を除いて(しかし、私の主観的な意見です)。私自身は、Nimbusのレイアウトを好んでいますが、重要なのは、レイアウトマネージャを正しく使用して、どのレイアウトマネージャが使用されていてもうまくいくGUIを作成することです。アップ+1を投票する。 –

+0

pack()とFlowLayoutを使用すると、すべてが1行になります。 – Stripies

関連する問題