Herausfinden der Systemfont

Hallo,

ich möchte derzeit im Rahmen eines Schulprojektes, die Größe der als default verwendeten Systemfont verwenden. Konkret möchte ich einfach die Font eines JButtons vergrößern. Ich habe bereits eine funktionierende Version, nämlich folgende:

readWAV = new JButton("read in .wav-file");
Font buttonFont = new Font(readWAV.getFont().toString(),Font.PLAIN,16);
readWAV.setFont(buttonFont);
​

Hier hole ich mir eigentlich nur die Defaultfont des Buttons und vergrößere sie. Ich möchte es aber "schön" programmieren, d.h. mir die Font vom jeweils verwendeten System direkt auslesen. Dazu habe ich ein paar Ansätze gefunden, der vielversprechendste war dieser hier:

Display display = new Display();
Font font = new Font(display.getSystemFont().getFontData()[0].getName(),Font.PLAIN,16);
button.setFont(font);
​

Es tritt jedoch folgendes Problem auf: Eclipse kennt die Klasse "Display" nicht, sie kann auch nicht importiert werden, scheint also nicht vorhanden zu sein.
Könnt ihr mir mit diesem Problem weiterhelfen, oder mir eine Alternative zeigen?

Vielen Dank im Vorraus, LG
 
Die Font hängt doch vom LaF ab oder nicht ???:L
Die Klasse Display findet er nicht weil die zu SWT gehört.

Wenn du einfach nur die Schriftgröße ändern willst dann reicht dir doch folgende Zeile:
Java:
button.setFont(button.getFont().deriveFont(16));
 
Die Font hängt doch vom LaF ab oder nicht ???:L
Die Klasse Display findet er nicht weil die zu SWT gehört.

Wenn du einfach nur die Schriftgröße ändern willst dann reicht dir doch folgende Zeile:
Java:
button.setFont(button.getFont().deriveFont(16));

danke, das hilft!
so weit ich weiß, hat jedes system eine defaultfont, inwieweit es vom LaF abhängt, weiß ich ehrlichgesagt nicht. jedenfalls danke, werds mit deiner version machen.

lg
 
kleine änderung zu deinem vorschlag ist noch nötig, dann gehts:
Java:
button.setFont(button.getFont().deriveFont(Font.PLAIN,16));

man muss den anderen Konstruktor, welcher den fontStyle beinhaltet, verwenden, ansonsten wird die Fontgröße nicht verändert.

danke nochmal, lg
 
Die andere Variante geht auch, muss allerdings [c]deriveFont(16.0)[/c] oder vergleichbar heißen. Da ist das Interface ziemlich bescheuert designed worden.
 

Neue Themen


Zurück
Oben