2 Stimmen

Einstellen einer universellen Schriftgröße für alle meine JLabels, JTextArea usw.

Hallo, ich habe eine merkwürdige Frage.

Ich möchte wissen, ob und wie man über universelle Einstellungen für meine Jlabels, TextAreas und im Grunde jeder Text, der auf einem Panel gehen kann, zu gehen. Ich habe die Schriftgrößen auf jedem Etikett geschrieben, um es konsistent zu machen. Die Panels werden jedoch immer größer und ich möchte die Schriftgröße nicht auf jedem Label fest codieren.

Hier sind die Größen, die ich verwende und die ich für alle meine Etiketten und Textareas verwenden möchte.

titlelb.getFont().deriveFont( Font.BOLD, (float) 20.); 
lb1.getFont().deriveFont( Font.PLAIN, (float) 11.);
lb2.getFont().deriveFont( Font.BOLD, (float) 11.);
textArea.setFont( Font.decode( "Arial-PLAIN-11"));

Ich frage mich nur, gibt es eine Möglichkeit, es universell zu setzen, wo jedes Panel diese spezifischen Größen erben würde, wenn das überhaupt möglich ist, ich weiß nicht wirklich, wie man über es für die Größen der Etiketten gehen, weshalb ich hier fragen. Ich danke Ihnen im Voraus.

7voto

halex Punkte 15995

Sie können die Schrifteigenschaften in der Datei UIManager für jede Komponente, die Sie benötigen, indem Sie UIManager.put("nameOfFontProperty", new Font(Font.DIALOG, FONT.PLAIN, sizeInPixel)); . Sie finden eine Liste mit den Standardeigenschaften aquí .

Ein Beispiel, um die Schriftart aller Etiketten eine Größe von 20px zu machen:

UIManager.put("Label.font", UIManager.getFont("Label.font").deriveFont(20.0));
SwingUtilities.updateComponentTreeUI(yourJFrame);

4voto

sampson-chen Punkte 44751

Schreiben Sie benutzerdefinierte Wrapper-Klassen für alle JComponent-Unterklassen, die eine feste Schriftart in Ihren Panels haben sollen, und fügen Sie den Schriftcode in die Konstruktoren ein. Zum Beispiel:

public class JLabelCustom extends JLabel {

    public JLabelCustom(...) {
        super();

        // Font setting code here
        .getFont().deriveFont( Font.BOLD, (float) 20.); 
        .getFont().deriveFont( Font.PLAIN, (float) 11.);
        .getFont().deriveFont( Font.BOLD, (float) 11.);
        this.setFont( Font.decode( "Arial-PLAIN-11"));
    }
}

Verwenden Sie die benutzerdefinierte JComponent überall dort, wo Sie die standardisierte Schriftart verwenden möchten.

1voto

Perry Punkte 98

Sie könnten eine Unterklasse erstellen, die alles automatisch einstellt. Etwas wie'

class UniversalJPanel extends JPanel{
    public UniversalJPanel(){
        super();
        this.setFont(...);
        }
    }

Dann könnten Sie dies einfach anstelle des regulären JPanels verwenden. Dasselbe gilt für JLabel, JTextArea usw.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X