Некрасиві / не-антиалійські шрифти в додатках Java-Swing


15

Нещодавно я перейшов на Ubuntu і встановив Java JDK 8u45 (32 біт) Oracle за допомогою сховища webupd8team / java.

Здається, все працює нормально, за винятком того, що програми Java-Swing мають зламані та некрасиві шрифти без антизбудження. Зміна шрифту не працює. Рідні програми на зразок Gedit, хоча мають однаковий шрифт, не впливають (також не застосовуються Java-додатки типу Eclipse); це стосується тільки програм 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 / середовищі (як зазначено тут: 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 за замовчуванням ("Діалог", як його називають) для всього. Можливо, ви можете використовувати інший шрифт для Text-Area, але діалог найкращий для кнопок тощо. Найкраща настройка AA-області Text-Area, яку я знайшов, є стандартною, але пробіг може змінюватися.


1
Ваше рішення чудово працює!
Надав Б

1
Знову потрібно, як для Ubuntu 18.10 і OpenJDK 11. І досі працює! :)
таніус
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.