2011-06-25 19 views
3

私は現在、キオスクアプリケーションのようなフルスクリーンのJavaアプリケーションを作成しています。つまり、アプリケーションは画面のサイズと解像度が異なる複数の異なるコンピュータ上にあるため、SWINGコンポーネントを絶対的な方法で配置することはできません。SWINGコンポーネントをJavaのフルスクリーンアプリケーションに配置するベストプラクティス?

このタイプのプログラムを作成するときに、このような問題にアプローチするにはどうすればよいのでしょうか。これまでのところ、私は画面サイズに相対的なパーセンテージを使い、それに応じてコンポーネントを配置することに傾いています。

しかし、私が予期している問題は、画面の一部をパーセンテージ値を使用してJLabelに割り当てると、小さい画面ではラベルが小さくなり、より多くの文字を完全に表示することはできません。

解決策は、FontMetricsを使用してラベル/ボタン/などのサイズでテキストを拡大することですが、FontMetricsクラスと作成するすべての計算についてはあまりよく分かりませんテキストは正しいサイズ。

基本的には、私が知りたいことは次のとおりです。正しい方法に近づいているのでしょうか、それとも私自身が複雑すぎるのでしょうか?私が今説明した方法でそれをやり遂げることができるとはかなり確信していますが、時間のほんの一部を取るだけの解決策があれば、あまりに多くの時間を無駄にしたくありません。原則として

答えて

4

、これはLayoutManagersがためているものです:デフォルトのもののどれもが、あなたのニーズに合わせていない場合は、あなたがの配置を最適化する方法を見つけ出すために手で数学をうまくする必要がありますhttp://download.oracle.com/javase/6/docs/api/java/awt/LayoutManager.html

あなたのコンポーネントは異なる解像度/アスペクト比で。 (とにかくやっていたような音です)

+0

参照[レイアウトマネージャのビジュアルガイド](http://download.oracle.com/javase/tutorial/uiswing/layout/visual.html) )。 – trashgod

+0

リンク(およびビジュアルガイド@trashgod)をありがとう。私はずっと前にレイアウトについて学んだことがあり、このプロジェクトのためにそれらを調べることを考えなかった。私は確信していない唯一のことは、コンポーネントが小さすぎる場合、テキストのサイズです、私はテキストがそれらとリサイズするかどうか覚えていないのですか?もしそうなら、私は結合したいレイアウトの種類を正確に把握できれば完璧な解決策のように思えます。 –

関連する問題