Windows/LinuxでJava SwingアプリのDPIを設定するには?
質問
DPI が 150 以上のモニタ (Macbook Pro など) を使用している場合にも、問題が発生する可能性があります。 Java Swing アプリのフォントが高 DPI のモニターでは小さすぎる。 と表示され、フォントサイズを変更することができません(WindowsのDPIを直接無視して を表示するだけです。 ). 画面の解像度を変更する以外には何もできませんが、これは絶対に LCD ですべてをぼやけさせる可能性があります。
はい、私は高 DPI モニター、15.6' で解像度 1920x1080 のラップトップを持っていますが、Matlab や Burpsuite など、いくつかの Java デスクトップ アプリは私のラップトップ上で非常に小さく見えます。インターネットを何度も何度も検索しましたが、この問題に対する解決策が見つかりません。JREのフォントを変更できることは知っています。
JRE_HOME/lib/font/fontconfig.properties.src
を通して JRE フォントを変更できることは知っていますが、Java デスクトップ フォントのデフォルトのフォント サイズまたは DPI を設定する場所を見つけることができません。
この問題には解決策がないのでしょうか。高 DPI のモニターをお持ちですか? そのようなアプリではどうするのですか? Swing は高 DPI ユーザーをあきらめているのですか?
どのように解決するのですか?
私は現在、Windows でこの問題を調査しています。以下は、私が見つけたものです。
ほとんどの Swing Look & Feel は高 DPI をまったくサポートしておらず、スケーラブルであるはずの Nimbus もサポートしていません。Nimbus が最終的に高 DPI スケーリングを提供するかもしれないという、いくつかの古いブログ記事を見つけましたが、どうやらそれは実現しなかったようです。
1 つの例外は System LAF ですが、そのデフォルトのフォントは、すべての DPI 設定で、実際のシステムのフォント サイズよりも 10 % ほど小さくなっています。さらに、ここで説明されているように、システムを明示的に選択する必要があります。 http://docs.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
Swingで設定できる単一のスケーリングファクターもありません。特定の LAF は、スケーリングを処理するコードを提供しなければなりません。ですから、あなたができる最善のことは、Systemを選択し、それが十分であることを望むことです。
しかし、JavaFX は私のシステムで 150% まで正しく自動的にスケーリングします。可能であれば、GUI を構築するために JavaFX を使用することをお勧めします。
編集: いくつかの小さなテスト プログラムを作成し、さまざまな GUI フレームワーク、Swing テーマ、および DPI 設定の比較スクリーンショットを撮りました。これは、この質問を読んでいる人々にとって有益かもしれません。 http://kynosarges.org/GuiDpiScaling.html
関連
-
java.sql.SQLException: executeQuery()でデータ操作文を発行できません。
-
[解決済み] JavaでInputStreamを読み込んでStringに変換するにはどうすればよいですか?
-
[解決済み] JavaにおけるHashMapとHashtableの違いは何ですか?
-
[解決済み] Java Mapの各エントリを効率的に反復処理するには?
-
[解決済み] Javaでメモリーリークを発生させるにはどうしたらいいですか?
-
[解決済み] Javaにおけるpublic、protected、package-private、privateの違いは何ですか?
-
[解決済み] JavaでStringをintに変換するにはどうしたらいいですか?
-
[解決済み] Javaで配列に特定の値が含まれているかどうかを判断するにはどうすればよいですか?
-
[解決済み] Java で、あるコンストラクタを別のコンストラクタから呼び出すにはどうすればよいですか?
-
[解決済み] Javaで配列を宣言し、初期化する方法は?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
アクセス制限です。タイプ 'JPEGCodec' は API ではない ☞My Blog Github ☜ ホームページを見る
-
executeQuery()でデータ操作文が発行できない。解決方法
-
Springの設定でxsdファイルのバージョン番号を設定しない方が良い理由
-
シェルコマンドやスクリプトのJavaコール
-
ジャバアレイ
-
List list = new ArrayList(); Error: ArrayList は型に解決できません。
-
X11 DISPLAY変数が設定されていない」問題の解決方法
-
eclipse にリソースリーク:'in' が閉じない
-
java 365*1000*60*60*24 計算問題
-
CAS 5.1.8でhttpをサポートし、認証されていない認可サービスエラーのプロンプトが表示される問題を解決した。