Brzydkie / nie-wygładzone czcionki w aplikacjach Java-Swing

15

Niedawno przeszedłem na Ubuntu i zainstalowałem Oracle JDK 8u45 (32 bity) Oracle przy użyciu repozytorium webupd8team / java.

Wydaje się, że wszystko działa dobrze, z wyjątkiem tego, że aplikacje Java-Swing mają zepsute i brzydkie czcionki bez wygładzania. Zmiana czcionki nie działa. Nie dotyczy to rodzimych aplikacji, takich jak Gedit, mających tę samą czcionkę (podobnie jak aplikacje Java inne niż Swing, takie jak Eclipse); ma to wpływ tylko na aplikacje Swing.

Zrzuty ekranu: (jEdit v5.1)

Zrzut ekranu z jEdit

Korzystam z systemu Ubuntu 15.04 (najnowsza wersja z dnia 2015-06-15). Moja wersja Java to 1.8.0_45, a „java -version” daje następujące dane wyjściowe:

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)

Próbowałem poprawek podanych w podobnych pytaniach (tutaj i na innych stronach wymiany stosów), ale one nie działają. Dodałem również następujące wiersze w / etc / environment (jak podano tutaj: https://wiki.archlinux.org/index.php/Java_Runtime_Environment_Fonts ), ale nie dają żadnych widocznych rezultatów.

JAVA_FONTS=/usr/share/fonts/truetype
_JAVA_OPTIONS='-Dawt.useSystemAAFontSettings=on'

Jestem pewien, że musi być to naprawione. Te same aplikacje Java działają tak, jak powinny w systemie Windows-7.

hexman
źródło

Odpowiedzi:

16

Ten problem został już dawno naprawiony, więc postanowiłem opublikować rozwiązanie. Zauważ, że problem nadal występuje domyślnie, ale można go rozwiązać za pomocą parametru.

Dodanie tej linii:

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

do /etc/environmentrozwiązuje problem.

Ta poprawka działa od wersji Ubuntu 16.04 i OpenJDK 8u151 (nie sprawdzono w Oracle JDK lub Java 9).

Przykład roboczy: wprowadź opis zdjęcia tutaj

Uwaga : niektóre czcionki i ustawienia AA komplikują problem. W jEdit używam do wszystkiego domyślnych czcionek Java („Dialog” jak to się nazywa). Prawdopodobnie możesz użyć innej czcionki dla obszaru tekstowego, ale okno dialogowe jest najlepsze dla przycisków itp. Najlepsze ustawienie AA obszaru tekstowego, jakie znalazłem, jest standardowe, ale przebieg może się różnić.

hexman
źródło
1
Twoje rozwiązanie działa świetnie!
Nadav B,
1
Ponownie potrzebne od Ubuntu 18.10 i OpenJDK 11. I nadal działa! :)
tanius