Caratteri brutti / non anti-alias nelle applicazioni Java-Swing


15

Di recente sono passato a Ubuntu e ho installato Java JDK 8u45 (32 bit) di Oracle usando il repository webupd8team / java.

Tutto sembra funzionare bene, tranne per il fatto che le applicazioni Java-Swing hanno caratteri rotti e brutti senza anti-aliasing. La modifica del carattere non funziona. Le applicazioni native come Gedit pur avendo lo stesso carattere non sono interessate (né le applicazioni Java non Swing come Eclipse); riguarda solo le applicazioni basate su Swing.

Schermate: (jEdit v5.1)

Schermata di jEdit

Sto eseguendo Ubuntu 15.04 (che è l'ultima versione del 15/06/2015). La mia versione Java è 1.8.0_45 e 'java -version' fornisce il seguente output:

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)

Ho provato le correzioni fornite in domande simili (qui e su altri siti di stackexchange) ma non funzionano. Ho anche aggiunto le seguenti righe nell'ambiente / etc / (come indicato qui: https://wiki.archlinux.org/index.php/Java_Runtime_Environment_Fonts ) ma non mi stanno dando risultati apparenti.

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

Sono sicuro che ci deve essere una soluzione per questo. Le stesse applicazioni Java funzionano come dovrebbero su Windows 7.

Risposte:


16

Questo problema è stato risolto da tempo, quindi ho deciso di pubblicare la soluzione. Si noti che il problema è ancora presente per impostazione predefinita, ma può essere risolto da un parametro.

Aggiunta di questa riga:

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

per /etc/environmentrisolvere il problema.

Questa correzione funziona con Ubuntu 16.04 e OpenJDK 8u151 (non verificato con Oracle JDK o Java 9).

Esempio funzionante: inserisci qui la descrizione dell'immagine

Nota : alcuni tipi di carattere e impostazioni AA complicano il problema. In jEdit, utilizzo i caratteri Java predefiniti ("Finestra di dialogo" come viene chiamato) per tutto. Probabilmente puoi usare un carattere diverso per l'area di testo, ma la finestra di dialogo è la migliore per i pulsanti, ecc. La migliore impostazione AA per l'area di testo che ho trovato è standard ma il tuo chilometraggio può variare.


1
La tua soluzione funziona alla grande!
Nadav B,

1
Di nuovo necessario a partire da Ubuntu 18.10 e OpenJDK 11. E ancora funzionante! :)
tanius,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.