der richtige Weg, um in Swing monospaced Schriftarten auszuwählen

8

Ich bin mit DefaultStyledDocument beschäftigt und versuche, den richtigen Weg zu finden, um einen Stil auf die richtige monospaced Schriftart zu setzen. Mit "richtig" meine ich, dass die gewählte Schriftart ist:

  1. Eine Schriftart mit einem festen Abstand, die auf dem Computer des Benutzers vorhanden ist
  2. Eine Schriftart, die durch die Benutzereinstellungen festgelegt wurde (gibt es eine Standardmethode in Java?)
  3. Wenn es keine spezifizierte Schriftart gibt, wird auf die standardmäßige monospaced Schriftart ("Monospaced") zurückgegriffen.

Das funktioniert:

%Vor%

und das funktioniert auch:

%Vor%

Aber ich kann nicht herausfinden, wie ich feststellen kann, ob die fragliche Schriftfamilie auf dem Computer des Benutzers existiert (es gibt keinen Rückgabewert für setFontFamily) und eine Schriftart mit einem festen Abstand. Wenn ich "Lucida Consoleq" verwende, scheint es zu verwenden, was immer die Standardschriftart ist.

    
Jason S 06.04.2009, 15:45
quelle

3 Antworten

3

Siehe javadoc für java.awt.Font . Es scheint, dass Sie möglicherweise die Methode public static Font decode(String str) verwenden können, um das zu erreichen, was Sie wollen. Der letzte Absatz des Javadoc für diese Methode sagt:

  

Die Standardgröße ist 12 und der Standardwert   Stil ist PLAIN. Wenn str nicht   Geben Sie eine gültige Größe an, die zurückgegeben wird   Schrift hat eine Größe von 12. Wenn str nicht   Geben Sie einen gültigen Stil an, den zurückgegebenen   Schriftart hat einen Stil von PLAIN. Wenn Sie tun   Geben Sie keinen gültigen Zeichensatznamen in der   str-Argument wird diese Methode zurückgegeben   eine Schrift mit dem Familiennamen "Dialog".   Um zu bestimmen, welche Schriftfamiliennamen   sind auf Ihrem System verfügbar, verwenden Sie die   GraphicsEnvironment.getAvailableFontFamilyNames ()   Methode. Wenn str null ist, ist eine neue Schriftart   kehrte mit dem Familiennamen zurück   "Dialog", eine Größe von 12 und ein PLAIN   Stil.

Wenn die von Ihnen gesuchte Schriftfamilie nicht existiert, wird "Dialog" zurückgegeben. Solange Sie das nicht als Rückgabewert erhalten, existiert die Schriftfamilie.

    
ssakl 07.04.2009 03:25
quelle
3

Monospaced ist ein virtueller Name (wie Dialog ), dem Java die Standardschriftart mit fester Breite des Systems zuordnet.

    
Aaron Digulla 19.04.2011 15:20
quelle
2

Ich denke du willst das

%Vor%

Siehe javadoc

    
Joel Carranza 06.04.2009 19:56
quelle

Tags und Links