2012-03-26 16 views
0

私は最後の1年間のプロジェクトのためのアプリケーションを完成させたばかりで、今はそのためのインターフェイスを作成する必要があります。アプリケーションには、多くの異なる画面、簡単なチュートリアル付きの紹介画面、および5 JPanelJMenuのメイン画面が含まれていません。私はアプリケーションの各部分に独自のJPanelを提供しています。私が作成しようとしているGUIは、これらのパネルをまとめてイントロを提供するべきです。Java Swing - さまざまな画面で妥当な次元を維持する

私がお聞きしたいのは、彼らがさまざまな画面サイズで同じように表示されるように、私は適切に異なる コンポーネントのサイズを設定することができる方法です。(小さな画面/大きな空白にお互いに本当に近づいていません

画面の寸法の何%かに基づいて手動で希望のサイズを設定する必要がありますか?(例:20%*幅、40%*高さ)それ以外の方法がありますか?

また、MigLayoutのようなライブラリを試してみると、この部分を完了するのに1週間かかることがありますか?標準のSwingよりも使いやすいものをたくさん読んでいます。

p.s

のJPanelは木、テキストエリア、ツールバー、ボタン、チェックボックス、コンボボックスおよびテキストフィールドを含みます。これらのパネルはそれぞれ非常に簡単です。

答えて

0

質問のこのタイプへの答えは、あなたが指示するフレームのコンテンツをしたい場合は...

何合理的」であり、アプリケーションとユーザーの期待に依存するが、という理由だけで、かなりのアプリケーションに依存しています各フレームのサイズに応じて、frame.pack()を呼び出すだけで、フレームの子のサイズ要件に基づいて適切なサイズが推測されます。

しかし、画面サイズでフレームの大きさを決定させる方が理にかなっている場合は、Toolkit.getScreenSize()を使用して画面サイズを取得し、見つけたものに基づいて配置します。

+0

私は妥当な意味を持っています:私は私の頭(そして紙)にUIの写真を持っています。私はサイズに関係なく、私の画面にそれをしたい。画面が大きくなると、同じ相対的な大きさを持つ一方で大きくなるはずです。 IDは答えがパーセンテージを得ていると思いますか? – Giannis

+0

Toolkit.getScreenSize()を使用してウィンドウの寸法を拡大縮小でき、通常は非常に簡単なので、計算を自分で行うことができます。 GridBagLayoutを使用した場合は、フレーム内のコンポーネント間で「余分な」スペースをどのように分割するかを指定することもできます。 – gorjusborg

+1

GridBagLayoutはほとんどの人にとって混乱します。ここでの重要なアイデアは、LayoutManagerを使用することです。これにより、コンテナ内のコンポーネントが使用可能なスペースに応じて配置され、スケールされます。スイングチュートリアルには素晴らしいセクションがあります:http://docs.oracle.com/javase/tutorial/uiswing/layout/index.html – jackrabbit

関連する問題