Schriftarten global ändern

Status
Nicht offen für weitere Antworten.
G

Gast

Gast
Hi Leute.

Ich such gerade ne Möglichkeit, wie ich die Schriftarten aller swing komponenten global vergrössern kann. Das müsste ja eigentlich über das Look and Feel gehen, aber ich find da leider nicht die Stelle, wo ich die Schriftart anpassen kann.

Kann mir da einer nen Tipp oder was code geben? Danke!
 
G

Gast

Gast
ah cool danke, das hab ich mit der suche nicht gefunden.

Funktioniert auch, allerdings hab ich 2 Probleme, weshalb ich die mthode mit dem look and feel benötige. Sonst haben ja neue komponenten noch die standard schrift.

String name = "Lucida Sans Typewriter";
int size = 14;
//PLAIN=1, BOLD=1, ITALIC=2
Font[] fonts = {new Font(name, 0, size), new Font(name, 1, size),
new Font(name, 2, size), new Font(name, 3, size)};
System.out.println(UIManager.getLookAndFeel());
try {
UIManager.setLookAndFeel("javax.swing.plaf.metal.MetalLookAndFeel");
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InstantiationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try{
UIDefaults defs = UIManager.getLookAndFeelDefaults();

for(Iterator i = defs.keySet().iterator(); i.hasNext(); ) {
Object key = i.next();
Font font = defs.getFont(key);
if (font != null)
UIManager.put(key, fonts[font.getStyle()]);
}

}catch (ConcurrentModificationException ex){
ex.printStackTrace();
}

Dachte, dass kann ich benutzen, aber der schmiert mit bei " Object key = i.next();" immer mit ner concurrentModificationException ab :(
 
S

SlaterB

Gast
vielleicht wird bei UIManager.put() die gleiche Liste, bzw dieses Set der Map (?) bearbeitet,

kannst dir ja vorher eine Kopie anlegen, dann kann es einen derartigen Fehler nicht geben,
aber dann ist es fraglich, ob du mit dem nicht mehr ganz so aktuellen Set überhaupt noch weiterarbeiten solltest
 
G

Gast

Gast
naja daran hab ich auch schon gedacht. aber die exception tritt ja schon bei i.next() auf. Das ist ja das komisch...
Wenn ich mir in der schleife einfach nur i.next() ausgeben lasse, dann kommt all das hier
TabbedPane.textIconGap
RootPane.questionDialogBorder
RootPane.colorChooserDialogBorder
CheckBoxMenuItem.border
OptionPane.errorDialog.titlePane.foreground
Spinner.ancestorInputMap
PasswordField.inactiveForeground
TabbedPane.focus
TabbedPane.contentAreaColor
SplitPaneUI
Slider.horizontalSize
ProgressBar.cycleTime
Menu.selectionForeground
ToggleButton.focusInputMap
OptionPane.errorDialog.border.background
PasswordField.echoChar
ToggleButton.margin
DesktopIcon.background
AuditoryCues.allAuditoryCues
TabbedPane.unselectedBackground
Spinner.arrowButtonBorder
Slider.minimumVerticalSize
RootPane.fileChooserDialogBorder
InternalFrameUI
ComboBox.disabledForeground
TableHeader.font
textInactiveText
Slider.highlight
RadioButtonMenuItemUI
InternalFrameTitlePane.maximizeButtonOpacity
Menu.selectionBackground
ScrollBar.minimumThumbSize
TextField.caretForeground
InternalFrame.maximizeSound
Panel.font
OptionPane.messageForeground
ToolBar.shadow
Menu.acceleratorForeground
ProgressBar.repaintInterval
text
ScrollBar.gradient
InternalFrame.iconifyIcon
Tree.ancestorInputMap
ToolTip.hideAccelerator
ComboBox.font
AATextInfoPropertyKey
ToggleButton.gradient
MenuBar.background
CheckBoxMenuItem.acceleratorSelectionForeground
controlShadow
inactiveCaptionBorder
InternalFrame.restoreDownSound
TextPane.foreground
TabbedPane.tabAreaBackground
Viewport.foreground
TabbedPane.foreground
RadioButton.foreground
infoText
CheckBoxMenuItem.gradient
MenuBar.highlight
OptionPane.border
ScrollPaneUI
Menu.submenuPopupOffsetX
OptionPane.questionSound
CheckBox.border
ToolBar.light
OptionPane.errorDialog.titlePane.background
PasswordField.background
RadioButton.select
Spinner.font
MenuItem.foreground
TableHeader.focusCellBackground
ToolBarSeparatorUI
Slider.font
OptionPane.informationIcon
ScrollBar.allowsAbsolutePositioning
RadioButtonMenuItem.checkIcon
inactiveCaption
ScrollBar.trackHighlight
Tree.leftChildIndent
LabelUI
SliderUI
TableHeader.foreground
Slider.focusInputMap.RightToLeft
Desktop.ancestorInputMap
EditorPane.font
Label.disabledForeground
ToggleButton.highlight
ScrollPane.foreground
TextArea.caretForeground
FileChooser.usesSingleFilePane
Label.background
RadioButtonMenuItem.border
Slider.tickColor
InternalFrame.closeIcon
OptionPane.errorIcon
TabbedPane.tabRunOverlay
textHighlightText
CheckBoxMenuItem.disabledForeground
ComboBox.isEnterSelectablePopup
InternalFrame.borderDarkShadow
TextField.border
ScrollBarUI
PasswordField.selectionBackground
TabbedPane.shadow
RadioButton.margin
Tree.dropLineColor
InternalFrame.minimizeIcon
FileChooser.homeFolderIcon
TaskPane.background
Viewport.background
ComboBox.foreground
RadioButton.darkShadow
TabbedPane.background
OptionPane.warningDialog.titlePane.shadow
ToolTip.borderInactive
TextPane.margin
html.pendingImage
PopupMenu.consumeEventOnClose
TabbedPane.focusInputMap
Tree.leafIcon
Tree.font
MenuItem.background
CheckBoxMenuItem.font
ViewportUI
ComboBox.buttonShadow
ScrollBar.thumb
MenuItem.acceleratorDelimiter
DesktopIcon.width
Button.focusInputMap
Tree.openIcon
Table.dropLineColor
TextFieldUI
OptionPane.questionDialog.titlePane.background
TabbedPane.light
Table.font
Menu.checkIcon
RootPane.errorDialogBorder
und dann fliegt die exception...

sehr komisch...
 

Marco13

Top Contributor
Brutal:
for(Iterator i = defs.keySet().iterator(); i.hasNext(); ) {
ersetzen durch
for(Iterator i = new HashSet(defs.keySet()).iterator(); i.hasNext(); ) {
 
G

Guest

Gast
Marco13 hat gesagt.:
Brutal:
for(Iterator i = defs.keySet().iterator(); i.hasNext(); ) {
ersetzen durch
for(Iterator i = new HashSet(defs.keySet()).iterator(); i.hasNext(); ) {

Vielen Dank! Jetzt funktionierts!
 
G

Gast

Gast
Also so ganz genau wie ich das haben will läuft das leider noch nicht.

Das Problem ist glaube ich, dass ich immer die defaultwerte des look and feel lade. Kann man nicht die aktuellen werte laden und dann mit denen arbeiten?

Hier mal mein code
Code:
public class FontScalePanel extends JPanel {

	
	
	JButton incrementSize;
	JButton decrementSize;
	public FontScalePanel(){
		super();
		setLayout(new BoxLayout(this,BoxLayout.Y_AXIS));
		
		
		incrementSize = new JButton("vergroessern");
		decrementSize = new JButton("verkleinern");
		
		
		add(decrementSize);
		add(incrementSize);
		
		incrementSize.addActionListener(new ActionListener(){

			public void actionPerformed(ActionEvent arg0) {
				incrementFontSize();
				
			}
			
		});
		
		
	}
	
	private void incrementFontSize(){
		// TODO: hier nicht immer die default werte laden!!!
		 UIDefaults defs = (UIDefaults) UIManager.getLookAndFeelDefaults().clone();
		 
       
	        for(Iterator i = new HashSet(defs.keySet()).iterator(); i.hasNext(); ) {	System.out.println(i.next());
	            Object key = i.next();
		        Font font = defs.getFont(key);
	            if (font != null){
	            	int size = font.getSize()+1;
	    	        //PLAIN=1, BOLD=1, ITALIC=2
	    	        Font[] fonts = {new Font(font.getName(), 0, size), new Font(font.getName(), 1, size),
	    	        new Font(font.getName(), 2, size), new Font(font.getName(), 3, size)};
	            	
	                UIManager.put(key, fonts[font.getStyle()]);
	            }
     	}
	        
	        SwingUtilities.updateComponentTreeUI(this);
		
	}
	
	
	public static void main (String [] args){
		JFrame f = new JFrame();
		
		f.add(new FontScalePanel());
		f.pack();
		f.setVisible(true);
		
	}
}

Das sollte quasi so sein, dass sich die schrift immer vergrössert wenn man auf increment klickt.
 
G

Gast

Gast
Hab jetzt noch n bisschen was geändert, so dass es eigentlich funktionieren müsste
[¢ode]
public class FontScalePanel extends JPanel {

static JFrame f = new JFrame();
JButton incrementSize;
JButton decrementSize;
UIDefaults defs = (UIDefaults) UIManager.getLookAndFeelDefaults().clone();

public FontScalePanel(){
super();
setLayout(new BoxLayout(this,BoxLayout.Y_AXIS));


incrementSize = new JButton("vergroessern");
decrementSize = new JButton("verkleinern");


add(decrementSize);
add(incrementSize);

incrementSize.addActionListener(new ActionListener(){

public void actionPerformed(ActionEvent arg0) {
incrementFontSize();

}

});


}

private void incrementFontSize(){
// TODO: hier nicht immer die default werte laden!!!

System.out.println("FontScalePanel.incrementFontSize()");





for(Iterator i = new HashSet(defs.keySet()).iterator(); i.hasNext(); ) {
Object key = i.next();
Font font = defs.getFont(key);

if (font != null){
int size = font.getSize()+1;
//PLAIN=1, BOLD=1, ITALIC=2
Font[] fonts = {new Font(font.getName(), 0, size), new Font(font.getName(), 1, size),
new Font(font.getName(), 2, size), new Font(font.getName(), 3, size)};
UIManager.put(key, fonts[font.getStyle()]);
defs.put(key, fonts[font.getStyle()]);
//System.out.println(font);
System.out.println(UIManager.get(key));
}
}

SwingUtilities.updateComponentTreeUI(f);

}


public static void main (String [] args){


f.add(new FontScalePanel());
f.pack();
f.setVisible(true);

}
}[/code]

Die Schriftart wird nun immer vergrössert, allerdings "sieht" man das nur nach dem ersten mal, danach wird nichts grösser. Warum ist das so?
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Alle Schriftarten in JComboBox AWT, Swing, JavaFX & SWT 5
G Tabellenzelle mit 2 Schriftarten AWT, Swing, JavaFX & SWT 3
I Swing to iText - Problem mit Schriftarten und Schriftgrößen AWT, Swing, JavaFX & SWT 21
B In einer JTextArea unterschiedliche Schriftarten verwenden? AWT, Swing, JavaFX & SWT 3
F Schriftarten unter Windows und Linux AWT, Swing, JavaFX & SWT 6
Fu3L Wie Schriftfarbe und Font global setzen? AWT, Swing, JavaFX & SWT 5
T Global Key Listener erstellen AWT, Swing, JavaFX & SWT 8
H Swing Componente zur Läufzeit ändern AWT, Swing, JavaFX & SWT 3
H JDialog in Größe ändern - Resize-Cursor bleibt betreten der Komponente AWT, Swing, JavaFX & SWT 1
H AWT Dialog Größe ändern - Schwarzer Inhalt beim groß ziehen AWT, Swing, JavaFX & SWT 1
_user_q ChoiceBox Elemente: Sprache ändern AWT, Swing, JavaFX & SWT 7
raeuchertofu Text von JTextfield und JLabel ändern AWT, Swing, JavaFX & SWT 2
B Deckraft ändern AWT, Swing, JavaFX & SWT 1
Davee JavaFX ListView = null wenn ich sie in Laufzeit ändern will! AWT, Swing, JavaFX & SWT 16
missy72 JavaFX RowFactory Schriftfarbe ändern AWT, Swing, JavaFX & SWT 6
T Swing JTable cellRenderer mit jpg Hintergrundfarbe lässt sich nicht ändern. AWT, Swing, JavaFX & SWT 1
N Bilder auf Button einfügen und mehrmals ändern (ein Button, mehrere ActionListener) AWT, Swing, JavaFX & SWT 2
Hatsi09 GUI Input Farbe ändern AWT, Swing, JavaFX & SWT 0
W JavaFX CSS ändern wirft NPE AWT, Swing, JavaFX & SWT 8
E Keystroke für Ausschneiden läßt sich nicht ändern AWT, Swing, JavaFX & SWT 2
L Swing Button Farbe ändern/wechseln AWT, Swing, JavaFX & SWT 2
B JavaFX Farbe eines Quadrates in einer separaten Klasse ändern AWT, Swing, JavaFX & SWT 4
sascha-sphw JavaFX ListCell höhe verändert sich beim ändern der Text-Farbe AWT, Swing, JavaFX & SWT 14
L Swing JLabel wird beim ändern der Schriftart immer neu gezeichnet. AWT, Swing, JavaFX & SWT 2
R Swing JTextField - Schriftgröße je nach Länge und Größe ändern AWT, Swing, JavaFX & SWT 0
OSchriever Layout über Radiobuttons ändern AWT, Swing, JavaFX & SWT 4
S Swing JLabel Text mit der Zeit ändern AWT, Swing, JavaFX & SWT 1
S JavaFX ListView Inhalte während Laufzeit ändern AWT, Swing, JavaFX & SWT 23
Shallty JavaFX MenuItem (Info) Icon ändern AWT, Swing, JavaFX & SWT 7
J Schriftart über einen Button ändern AWT, Swing, JavaFX & SWT 1
J JButton zum ändern Der Schriftart/Schriftgröße AWT, Swing, JavaFX & SWT 2
C Bilder so einbinden, dass sie sich ändern AWT, Swing, JavaFX & SWT 6
S JavaFX Boolean ändern Table View AWT, Swing, JavaFX & SWT 14
K Swing Text eines Lables in einer Methode ändern AWT, Swing, JavaFX & SWT 13
L JavaFX TableView kein content text ändern AWT, Swing, JavaFX & SWT 2
I Java Bildfarbe ändern wie bei Photoshop AWT, Swing, JavaFX & SWT 9
cool_brivk24 Swing Button Farbe ändern AWT, Swing, JavaFX & SWT 2
B Observer Pattern JLabel ändern AWT, Swing, JavaFX & SWT 7
K JavaFX TextInputDialog Button Text ändern AWT, Swing, JavaFX & SWT 1
Tronert JavaFX Linienstärke eines Separators ändern? AWT, Swing, JavaFX & SWT 3
das_leon AWT Button Design ändern AWT, Swing, JavaFX & SWT 5
S JavaFX GridPane Zellen Seitenverhätnis passend ändern mit der Stage AWT, Swing, JavaFX & SWT 0
S Parameter ändern in try/catch AWT, Swing, JavaFX & SWT 5
xYurisha JLabel Text einer geöffneten Gui über eine andere Klasse ändern! AWT, Swing, JavaFX & SWT 3
J 2D-Grafik Background einer Jpanel Klasse ändern AWT, Swing, JavaFX & SWT 1
G JavaFX TableView Wert in Spalte ändern AWT, Swing, JavaFX & SWT 0
C JavaFX Inhalt eines SplitPane's durch Menü-Auswahl ändern? AWT, Swing, JavaFX & SWT 13
DaCrazyJavaExpert Swing Größe des JPanel ändern/wird nicht geändert. AWT, Swing, JavaFX & SWT 3
L JavaFX button über andere Klasse ändern AWT, Swing, JavaFX & SWT 7
T JavaFX Text des ProgressIndicators ändern AWT, Swing, JavaFX & SWT 2
T JavaFx Examples ändern liefert unerwartetes Ergebnis AWT, Swing, JavaFX & SWT 5
Z Swing JTree DefaultMultipleTreeNode Repräsentation ändern AWT, Swing, JavaFX & SWT 1
MaxG. Swing Farbe von Button beim drücken ändern AWT, Swing, JavaFX & SWT 4
MaxG. JFrame Größe ändern AWT, Swing, JavaFX & SWT 16
K Liniendicke für Line Chart dynamisch ändern AWT, Swing, JavaFX & SWT 0
K Sprache ändern AWT, Swing, JavaFX & SWT 11
P Jframe Bild einfügen, Hintergrund Farbe ändern, und Button schrift Größe ändern AWT, Swing, JavaFX & SWT 2
S JavaFX fxml datein mit menübar ändern AWT, Swing, JavaFX & SWT 20
W Kodierung (CharSet) beim Schreiben ändern AWT, Swing, JavaFX & SWT 1
Neumi5694 LookAndFeel Look & Feel nicht angezeigter Komponenten ändern AWT, Swing, JavaFX & SWT 6
T AWT Farben in einem Bild ändern AWT, Swing, JavaFX & SWT 8
N JLabel ändern während Programm ausgeführt wird AWT, Swing, JavaFX & SWT 4
krgewb Swing JTree - Farbe von nodes ändern AWT, Swing, JavaFX & SWT 4
D Swing JScrollPane Tabelle ändern (2 Tabellen) AWT, Swing, JavaFX & SWT 7
Sugan Inhalte mit Threads ändern -> java.lang.IllegalStateException AWT, Swing, JavaFX & SWT 6
X JMenu Menu-Bar ausrichtung ändern im Programm AWT, Swing, JavaFX & SWT 0
D JavaFX Probleme bei Service-Klasse beim ändern der GUI AWT, Swing, JavaFX & SWT 8
P im JTable die Schriftfarbe ändern AWT, Swing, JavaFX & SWT 19
F GUI Auflösung ändern - Koordianten und Proportions Problem AWT, Swing, JavaFX & SWT 21
R Hilfe beim ändern des Hintergrundes eines JFrames AWT, Swing, JavaFX & SWT 9
R LookAndFeel Wie kann man die Textfarbe der Nimbus ProgressBar nach Füllstand ändern? AWT, Swing, JavaFX & SWT 2
J JavaFX Bestimmte Zellen im TableView ändern (Farbe und Text) AWT, Swing, JavaFX & SWT 1
J JTable bounds ändern durch resizing des Fensters AWT, Swing, JavaFX & SWT 9
F JTable Zellen-Hintergrund ändern AWT, Swing, JavaFX & SWT 7
B Jlabel Text von anderen Klasse aus ändern AWT, Swing, JavaFX & SWT 9
P Fenstergröße ändern, Panel soll gleich bleiben AWT, Swing, JavaFX & SWT 2
S JavaFX NullPointerException bei Versuch ImageView zu ändern AWT, Swing, JavaFX & SWT 1
F JavaFX Timeline Animation soll X- und Y-Position während Animation ändern AWT, Swing, JavaFX & SWT 2
E JLabel aus Runnable ändern AWT, Swing, JavaFX & SWT 2
Tom299 JavaFX TreeView Expanded-Icon ändern AWT, Swing, JavaFX & SWT 0
M JavaFX Progressbar bar und track Komponente zur Laufzeit ändern AWT, Swing, JavaFX & SWT 2
B 3D-Grafik Java 3D Licht während Laufzeit ändern AWT, Swing, JavaFX & SWT 0
T JavaFX "DefaultButton"-Design ändern AWT, Swing, JavaFX & SWT 8
D Event Handling Aus einer anderen Klasse heraus einen Text des JLabels ändern. AWT, Swing, JavaFX & SWT 12
Z Möglichkeit mit Listerners die Farbe meiner Objekte zu ändern AWT, Swing, JavaFX & SWT 15
K (GUI) JButton Farbe bei druck ändern AWT, Swing, JavaFX & SWT 3
E JTable Hintergrund von geklickter Zelle ändern AWT, Swing, JavaFX & SWT 2
T JFileChooser Rahmenfarbe ändern AWT, Swing, JavaFX & SWT 1
Z JavaFX Inhalt einer ViewTable durch Aktion einer Menubar ändern welche in einer anderen fxml ist AWT, Swing, JavaFX & SWT 4
Joew0815 Dropdown meue während der Laufzeit ändern. AWT, Swing, JavaFX & SWT 6
T MausClick soll TExt ändern AWT, Swing, JavaFX & SWT 6
Tom299 JavaFX Titelfarbe ändern AWT, Swing, JavaFX & SWT 7
S Größe der Komponenten, beim ändern der größe des Frames, mit ändern! AWT, Swing, JavaFX & SWT 2
H Image im Array per Knopfdruck ändern AWT, Swing, JavaFX & SWT 6
S Farbe ändern bei der paint-Methode AWT, Swing, JavaFX & SWT 5
J in actionPerformed() Koordinaten ändern AWT, Swing, JavaFX & SWT 9
W JavaFX Label in Controller-Klasse in einer anderen Controller-Klasse ändern AWT, Swing, JavaFX & SWT 9
OnDemand Inhalt des Frames ändern AWT, Swing, JavaFX & SWT 4
D Swing JCombobox - Tooltip Location ändern AWT, Swing, JavaFX & SWT 4
I Swing Beim Fenster das kleine Symbol(ICS) ändern AWT, Swing, JavaFX & SWT 3

Ähnliche Java Themen


Oben