web-dev-qa-db-ja.com

Java-SwingアプリケーションのUい/非アンチエイリアスフォント

最近Ubuntuに切り替えて、webupd8team/Javaリポジトリを使用してOracleのJava JDK 8u45(32ビット)をインストールしました。

Java-Swingアプリケーションがアンチエイリアスなしで壊れたいフォントを使用していることを除いて、すべて正常に動作しているようです。フォントの変更は機能しません。同じフォントを使用しているGeditのようなネイティブアプリケーションは影響を受けません(Eclipseのような非Swing Javaアプリケーションも影響を受けません)。 Swingベースのアプリケーションにのみ影響します。

スクリーンショット:(jEdit v5.1)

Screenshot of jEdit

Ubuntu 15.04(2015-06-15現在の最新バージョン)を実行しています。私のJavaバージョンは1.8.0_45で、「Java -version」は次の出力を提供します。

Java version "1.8.0_45"
Java(TM) SE Runtime Environment (build 1.8.0_45-b14)
Java HotSpot(TM) Server VM (build 25.45-b02, mixed mode)

同様の質問(ここおよび他のstackexchangeサイト)で与えられた修正を試しましたが、それらは動作しません。また、/ etc/environmentに次の行を追加しました(ここで示したとおり https://wiki.archlinux.org/index.php/Java_Runtime_Environment_Fonts )。結果。

Java_FONTS=/usr/share/fonts/truetype
_Java_OPTIONS='-Dawt.useSystemAAFontSettings=on'

これには修正が必要だと確信しています。同じJavaアプリケーションがWindows-7で動作するはずです。

15
hexman

この問題は長い間修正されているため、解決策を投稿することにしました。問題はデフォルトのままですが、パラメータで修正できることに注意してください。

この行を追加:

_Java_OPTIONS='-Dawt.useSystemAAFontSettings=on -Dswing.aatext=true'

to /etc/environmentは問題を修正します。

この修正は、Ubuntu 16.04およびOpenJDK 8u151の時点で機能します(Oracle JDKまたはJava 9でチェックしていません)。

作業例: enter image description here

:一部のフォントとAA設定は問題を複雑にします。 jEditでは、すべてにデフォルトのJavaフォント(「ダイアログ」と呼ばれる)を使用します。おそらく、テキストエリアに別のフォントを使用できますが、ボタンなどにはダイアログが最適です。私が見つけたテキストエリアAAの最適な設定はstandardですが、マイレージは異なる場合があります。

15
hexman