2016-04-08 32 views
1

解決に問題があります。私はJava Swingアプリケーション(デスクトップアプリケーション)を開発しましたが、問題は、JFrame上のコンポーネントが大きくなったり小さくなったりするため、すべてのシステムが独自の解像度を持つ別のラップトップまたはデスクトップシステムでそのアプリケーションを使用し始めたときに発生します。最大の問題は、JFrameのすべてが小さすぎて何かを読むことができなくなるため、何も見えない4K解像度システムでそのアプリケーションを使用し始めたときです。これに対する解決策はありますか?JFrameの解決の問題

+0

レイアウトマネージャを使用していますか? –

+0

問題を示すコード、[mcve]は、問題の内容を理解するのに役立ちます。あなたが言うように、我々は確かに言うことができません。たとえば、スイングを自動的に行うのではなく、サイズを直接設定することができます。しかし、コードなしでは、知る方法はありません。 – RealSkeptic

+0

したがって、レイアウトは動作しているGridLayoutです。どんな解像度を設定しても、それに従ってコンポーネントが配置されますが、フォントサイズは増減しません。それは問題です – Saurabh

答えて

0

Swing/AWT用のWindowsまたはLinux上のJavaでHiDPIサポートが不足しているような問題が発生しているようです。これはJava 9で修正される予定であり、おそらく最新のアルファビルドを使ってテストすることができます。

現在、LookAndFeelsは、HiDPI環境で正しく動作するために必要なスケーリングを自動的にサポートしていません。 Java 9が利用可能になるまで、手動でテキスト/コンポーネント/ウィンドウのサイズを変更するか、JavaFXに切り替える必要があります。

Here's an example手動でフォントサイズを増やす方法。

0

どのようにすべてのアプリケーションが動作するのですか。 GUIのelemensのサイズはピクセル単位で定義されます。ディスプレイの解像度が大きくなるとピクセル数が多くなり、相対的なGUI要素のサイズは小さくなります。なぜWindows(そしておそらく他のシステム)にもdpiスケーリングを設定するオプションがあるのですが、そうでなければすべてが小さすぎます。 Swing is by default claiming that it is DPI aware, so windows doesn't scale it. There are ways to change that behaviour though. Windowsのスケーリングが有効になっていると、他のネイティブアプリケーションよりも高解像度の画面でアプリのサイズが小さく見えます。スイングは実際にはDPIスケーリングをサポートしておらず、何かをするための唯一のオプションはフォントサイズを手動で変更することです。How to set the DPI of Java Swing apps on Windows/Linux?