2008-10-07 7 views

Antwort

70

Wenn Sie Zugriff auf die Quelle haben, können Sie diese im Hauptverfahren tun:

// enable anti-aliased text: 
    System.setProperty("awt.useSystemAAFontSettings","on"); 
    System.setProperty("swing.aatext", "true"); 

oder, (und wenn Sie keinen Zugriff auf die Quelle, oder wenn dies einfacher) ist, können Sie einfach die Systemeigenschaften oben in die JVM übergeben, indem Sie diese Optionen in der Befehlszeile hinzufügen:

-Dawt.useSystemAAFontSettings=on -Dswing.aatext=true 
+1

+1 Jeden Tag lerne ich etwas Neues. Vielen Dank! – Rekin

+0

Diese Methode funktioniert nicht für Substanz Aussehen und Gefühl, haben Sie eine Idee? –

+0

Dies funktioniert nicht für 'Graphics # paintString (String, int, int)' – Supuhstar

0

danke für die Info. Ich habe mich selbst darüber gewundert. Ich benutze SoapUI (www.eviware.com) und es verwendet standardmäßig nicht AA-Text. Ich fügte hinzu -Dawt.useSystemAAFontSettings = on -Dswing.aatext = true zu der Batch-Datei, die es startet, aber das hat keinen Unterschied gemacht. Schätze, ich muss in ihrem Forum fragen.

+0

Es kann sein, dass die Argumente der Anwendung statt der jvm interpretiert werden - Sie müssen sich vielleicht etwas tiefer in die bat-Datei einarbeiten. (oder es funktioniert möglicherweise nicht für alle Apps ... wenn ja, lass es mich wissen/stimme meine Antwort ab ..) – rcreswick

+1

Ich konnte dies durch Bearbeiten der SH-Startdatei erreichen, so dass die letzte Zeile gelesen wurde: java -Dawt.useSystemAAFontSettings = auf -Dswing.aatext = true -Dsoapui.properties = soapui.properties -Dgroovy.source.encoding = iso-8859-1 -cp $ SOAPUI_CLASSPATH com.eviware.soapui.SoapUIPro $ * – rcreswick

+1

Ich glaube dir könnte das gleiche mit der soapui bat-Datei tun, indem Sie die -D hinzufügen ....Parameter, die hier in der JAVA_OPTS-Zeile aufgeführt sind, oder einfach nur angeben JAVA_OPTS = -Dawt.useSystemAAFontSettings = on -Dswing.aatext = true in der Umgebung – rcreswick

6

Für das Protokoll, ich habe in meinem Windows 7 Maschine, fand heraus, dass

  • Wenn ich das nicht in meinem Code verwenden, ich das schöne Cleartype Subpixel-Rendering erhalten.
  • Aber wenn ich das verwende, bekomme ich das klassische Schwarz-Weiß-Antialiasing, das viel hässlicher ist.

Also sollte dieser Code sorgfältig verwendet werden. Ich schätze, es wird überhaupt nicht mehr benötigt, wenn alle Linux-Benutzer auf die Versionen von OpenJDK aktualisiert haben, die standardmäßig gut mit Aliasing umgehen.

+7

Try System.setProperty (" awt.useSystemAAFontSettings "," lcd "); und du solltest ClearType bekommen. – Domchi

+0

Als Linux- und Windows-Benutzer mag ich "cleartype" nicht. Ich deaktiviere es absichtlich. – Wyatt8740

7

Swing-Steuerelemente in den neuesten Versionen von Java 6/7 sollten automatisch systemweite Einstellungen berücksichtigen. (Wenn Sie Windows L & F auf einem Windows-Betriebssystem verwenden, sollte Text mit ClearType gerendert werden, wenn diese Einstellung systemweit aktiviert ist.) Eine Lösung könnte also einfach lauten: Aktivieren Sie das native Look and Feel?

In Anwendungen, die Sie entwickeln, wenn Sie Ihren eigenen Text direkt machen, müssen Sie auch so etwas wie dies zu tun (irgendwann vor Graphics.drawText oder Freunde anrufen):

if (desktopHints == null) { 
    Toolkit tk = Toolkit.getDefaultToolkit(); 
    desktopHints = (Map) (tk.getDesktopProperty("awt.font.desktophints")); 
} 
if (desktopHints != null) { 
    g2d.addRenderingHints(desktopHints); 
} 

Referenz: http://weblogs.java.net/blog/chet/archive/2007/01/font_hints_for.html

Verwandte Themen