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


15

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

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

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

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で動作するはずです。

回答:


16

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

この行を追加:

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

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

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

作業例: ここに画像の説明を入力してください

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


1
あなたのソリューションはうまくいきます!
ナダブB

1
Ubuntu 18.10およびOpenJDK 11の時点で再び必要でしたが、まだ機能しています!:)
タニウス
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.