2013-03-14 14 views
9

Javaで画面サイズを取得する方法は?Javaで画面サイズを取得

画面の解像度、画面/モニターのサイズ(インチとアスペクト比)はありません。 開発されたアプリケーションは、画面サイズとアスペクト比に関係なく、同じサイズでなければならない何らかのテストを表示する必要があります。 幅2cm、高さ2cmの四角形を表示し、可能なすべてのタイプのディスプレイアダプターで同じサイズにしたいとしましょう。

+0

私は実際のサイズを計算するために画面DPIを知っている必要があるので、それは不可能だと思うが、それは[不可能と思われる](http://stackoverflow.com/questions/4707756/how-to-correctly-detect-dpi -of-display-with-java)[Java](http://stackoverflow.com/questions/6544510/how-to-get-the-screen-dpi-in-java) – bsiamionau

+0

あなたはこの回答をチェックしましたか:http ://stackoverflow.com/questions/4322253/screen-display-size – NilsH

+0

'GraphicsConfiguration'で' getDefaultTransform 'を試してみてください。 –

答えて

2

答えは、純粋なJavaでは達成できない可能性があり、まったくそうでない可能性があると思います。

デフォルトのToolkitオブジェクトを使用して、表示可能な画面サイズ(ピクセル単位)と名目スケーリング(dpi)をJavaで取得できます。しかし、これらはしばしば不正確です...それは非正方形の正方形につながります。

ネイティブコードでより正確な値を取得できる可能性がありますが、これは間違いなく移植できません。このQ/Aは、それが不可能であると言う - How to get screen's physical size (i.e. in inches)?

0

ここでは、テスト環境で特定のディスプレイのキャリブレーションへの1つのアプローチの概要です:

  • はピクセル/インチの任意の数を想定して、キャリブレーション矩形をContruct (DPI)。推定値はGraphicsConfiguration#getNormalizingTransform()から取得できます。

  • 想定されるDPIに合わせて縮尺された矩形をレンダリングします。

  • 水平および垂直DPIのスピナーを追加します。

  • 矩形を所望の寸法にするようにスピナーを調整するようにユーザーに依頼します。

  • java.util.Preferencesの値を後で使用するために記録します。

  • GraphicsDevice#getIDstring()を使用して、特定のデバイスキャリブレーションを識別します。

補遺:同様の機能はウィキトピックSpatialCalibrationに示され、Analyze > SetScale…ダイアログでImageJで利用可能です。

+0

のような非常に特殊なケースでは、それは次の時間のための完璧なソリューションです:D、ユーザー較正 –

関連する問題