2009-07-27 10 views
2

In meiner Swing-Anwendung habe ich verschiedene Texttypen, die ich anzeigen möchte. Zum Beispiel möchte ich vor einer Auswahlliste eine Überschrift Text anzuzeigen, so etwas wie:Anpassen von Beschriftungsschriften in Swing

 
    Select choice: 
    a 
    b 

ich das „Select Wahl“ Etikett die „Überschrift“ font (etwas, das ich definieren), und die Entscheidungen verwenden möchte um die Schriftart "Choice" zu verwenden. Dieses Muster wird an mehreren Stellen in meiner Anwendung vorkommen. Daher möchte ich idealerweise zentralisieren, wo die Schriftarten festgelegt sind.

Mein aktueller Ansatz ist es, eine Fabrik zu verwenden, um die verschiedenen Etikettentypen zu erstellen:

LabelFactory.createHeadingLabel("LabelText"); 
LabelFactory.createChoiceLabel("ChoiceText"); 

Die Fabrik liest in einer Eigenschaft die Schriftart Eingabe der Datei und ich passe Sie die Etiketten, wenn sie in der Fabrik erzeugt werden. Ich weiß, dass die Verwendung einer Fabrik wie dieser funktioniert, aber ich bin mir nicht sicher, ob es eine Standard-Swing-Konvention gibt, um so etwas zu tun. Jede Eingabe würde geschätzt werden.

Antwort

2

Ein anderer Ansatz wäre, JLabel zu erweitern.

Sie könnten die Schriftarten immer noch aus einer Konfigurationsdatei lesen, aber auf diese Weise können Sie Etiketten in einer ähnlichen Weise wie eine normale JLabel erstellen.

private JLabel header = new HeaderJLabel("Header text"); 

Alles, was Sie tun müssten, überschreibt den Konstruktor für Ihre benutzerdefinierten Beschriftungen.

Außerdem sollten Sie die Konfigurationsdatei nur einmal einlesen. Laden Sie es in den Speicher und greifen Sie von dort aus darauf zu.

+0

Yep entfernen müssen, das war die andere Art, wie ich gedacht hatte. Im Allgemeinen mache ich nicht viel Swing-Entwicklung, also wusste ich einfach nicht, ob es eine Standard-Swing-Methode gab. –

+0

Ich glaube nicht, dass es einen Standard für das gibt, was Sie tun, weil es im Allgemeinen nicht allzu häufig ist. – jjnguy

+0

Es ist nicht üblich, mehrere Textstile in einer Rich-UI zu verwenden. –

0

Sie können begrenztes HTML in vielen Swing-Komponenten verwenden, so dass Sie HTML verwenden können, um Ihrem Text verschiedene Stile zu geben.

Zum Beispiel headingLabel.setText("< html><b>This text will be bold</b>< /html>"); Gibt Ihnen ein Etikett mit fettem Text.

Hinweis: Sie den zusätzlichen Platz von < html> und </html>