Vor einiger Zeit beantwortete ich einen Stapel -Überlauffrage zu einer Schriftart, die in der Lao -Sprache ein Wort nicht ordnungsgemäß zeigte. Ich schrieb eine Swing -GUI, um die Frage des Stapelüberlaufs zu beantworten.
Wenn Sie mit Java Swing nicht vertraut sind, hat Oracle ein ausgezeichnetes Tutorial, um Ihnen den Einstieg zu erleichtern und eine GUI mit JFC/Swing zu erstellen. Überspringen Sie den NetBeans -Abschnitt.
Ich habe mich aus zwei Gründen entschlossen, eine allgemeinere Schriftart -Selektor -GUI zu schreiben.
Ich wollte eine Skriptschrift für eine andere GUI auswählen, die ich erstellt habe. Ich musste OpenOffice verwenden, um meine verfügbaren Schriftarten zu betrachten.
Ich dachte, es würde eine gute Swing -Anwendung für Github machen.
Hier ist die Schriftart der Schriftart, die zeigt, welche Schriftarten auf meinem Computer einen englischen Satz anzeigen. Ich habe 432 Schriftart Variationen, mit denen der Beispieltext aus dem JTextField angezeigt werden kann.

Oben in der GUI können Sie Beispieltext eingeben oder kopieren / einfügen. Sie können aus mehreren gängigen Schriftgrößen auswählen. Nachdem Sie mit der linken Maustaste auf die Display-Schriftarten Jbutton geklickt haben, sehen Sie ein Beispiel jeder Schriftart und oben die Gesamtzahl der verfügbaren Schriftarten, die Java erkennt.
Hier ist die Schriftart der Schriftart, die zeigt, welche Schriftarten auf meinem Computer ein Wort in der Lao -Sprache anzeigen. Sie können die Felder im Beispieltext JTextField sehen. Meine Standard -Swing -GUI -Schrift kann das Wort nicht anzeigen. Nur 11 Schriftvariationen meines Systems können, und nur die Dejavu -Schrift kann das Wort mit den Glyphen in der richtigen Position anzeigen.

Die Swing -GUI besteht aus vier Klassen; Fontselectorgui, FontTableCellRenderer, FontDisplayListener und FontDisplayrunnable.
Die Fontselectorgui -Klasse ist die Haupt -GUI -Klasse. In dieser Klasse werden die JFRAME, die Eintrags -JPanel und das Display JPanel erstellt. Der JFRame wird in der Run -Methode erstellt und die JPanels werden in separaten Methoden erstellt. Der Eintrag JPanel verwendet ein BoxLayout, während das Display JPanel einen BorderLayout verwendet.
Die FontTableCellRenderer -Klasse ist die JTable Cell -Renderer -Klasse, die für die Wiedergabe der JTable -Zellen in den verschiedenen Schriftarten verantwortlich ist.
Die FontDisplayListener -Klasse reagiert auf den Jbutton des Eintrags jpanel. Da die Erstellung der JTable -Zeilen eine Weile dauert, aktualisiert eine separate FontDisplayrunnable die JTable -Zeilen in einem separaten Thread. Wenn Sie dies tun, reagiert die GUI.