Weiß jemand, wie JTextArea eine Schriftart auf allen Plattformen erhalten kann?JTextArea kann Schriftart mit fester Breite ohne Antialiasing anzeigen
Ich möchte einen einfachen Code-Editor mit speichern/öffnen Funktionalität, , die einfach genug ist, aber ich möchte Schriftart zu feste Größe, vorzugsweise Kurier neu sein.
Das Problem ist, dass Kurier neue proprietäre ist offensichtlich, und nicht nur ist es nicht standardmäßig auf vielen Systemen installiert, aber auf den meisten modernen Systemen wird es auf Cleartype-Standard sein, was es wie Müll aussehen lässt .
Ich bin versucht, mein eigenes JPanel mit update-Render-Lack und neu zu erfinden, die JTextArea zu machen und Schriftarten als feste Größe Bitmaps speichern, aber dieser Ansatz scheint dumm und sehr zeitaufwendig.
Ich möchte eine kostenlose Schriftart fester Größe in das Projekt und verwenden Sie diese Schriftart auf allen Plattformen, die möglich erscheint. Allerdings scheinen moderne Systeme alle Schriftarten zu glätten, was ich gerne verhindern würde.
Leider scheint Swing automatisch durch Systemvorgaben so, ohne die Einstellungen des Benutzers zu zerstören, scheint es ein Nein zu sein.
kurz So ist es eine Möglichkeit, JTextArea zu bekommen eine feste Breite Schriftart und Schriftglättung deaktivieren/Anti-Aliasing (oder zumindest Toggle) anzuzeigen, oder ist diese Aufgabe unmöglich Swing mit?
Vielen Dank im Voraus!
Danke, das beantwortet die Frage, aber ich bin immer noch neugierig, wenn ich die monospaced Schriftart sicherstellen kann, dass es nicht antialiased wird. Ist das möglich? – Dmitry
@Dmitry Es gibt mehrere Möglichkeiten, das Anti-Aliasing zu deaktivieren: 1) ['System.setProperty (" awt.useSystemAAFontSettings "," false ");'] (http://docs.oracle.com/javase/6/docs /technotes/guides/2d/flags.html#aaFonts) 'System.property (" swing.aatext "," false "); 2) Sie können die RenderingHints auf das Graphics-Objekt der 'paintComponent'-Methode setzen, um TEXT_ANTI_ALIASING zu deaktivieren (' ((Graphics2D) g) .setRenderingHint (RenderingHints.KEY_TEXT_ANTIALIASING, Boolean.FALSCH); "aber du wirst keine absolute Garantie haben, dass jemand das später nicht ändern wird. –
Ich mache mir keine Sorgen über Änderungen nach, ich mache mir Sorgen über die Standardeinstellungen :). Danke vielmals! – Dmitry