Je me demandais comment définir la police par défaut pour l'ensemble de mon programme Java swing. D'après mes recherches, il semble qu'il peut être fait avec UIManager
, quelque chose à faire avec LookAndFeel
, mais je ne trouve pas comment le faire, et l' UIManager
semble assez compliqué.
Réponses
Trop de publicités?essayez:
public static void setUIFont (javax.swing.plaf.FontUIResource f){
java.util.Enumeration keys = UIManager.getDefaults().keys();
while (keys.hasMoreElements()) {
Object key = keys.nextElement();
Object value = UIManager.get (key);
if (value != null && value instanceof javax.swing.plaf.FontUIResource)
UIManager.put (key, f);
}
}
Appel par ...
setUIFont (new javax.swing.plaf.FontUIResource("Serif",Font.ITALIC,12));
UIManager.put("Button.font", /* font of your liking */);
UIManager.put("ToggleButton.font", /* font of your liking */);
UIManager.put("RadioButton.font", /* font of your liking */);
UIManager.put("CheckBox.font", /* font of your liking */);
UIManager.put("ColorChooser.font", /* font of your liking */);
UIManager.put("ComboBox.font", /* font of your liking */);
UIManager.put("Label.font", /* font of your liking */);
UIManager.put("List.font", /* font of your liking */);
UIManager.put("MenuBar.font", /* font of your liking */);
UIManager.put("MenuItem.font", /* font of your liking */);
UIManager.put("RadioButtonMenuItem.font", /* font of your liking */);
UIManager.put("CheckBoxMenuItem.font", /* font of your liking */);
UIManager.put("Menu.font", /* font of your liking */);
UIManager.put("PopupMenu.font", /* font of your liking */);
UIManager.put("OptionPane.font", /* font of your liking */);
UIManager.put("Panel.font", /* font of your liking */);
UIManager.put("ProgressBar.font", /* font of your liking */);
UIManager.put("ScrollPane.font", /* font of your liking */);
UIManager.put("Viewport.font", /* font of your liking */);
UIManager.put("TabbedPane.font", /* font of your liking */);
UIManager.put("Table.font", /* font of your liking */);
UIManager.put("TableHeader.font", /* font of your liking */);
UIManager.put("TextField.font", /* font of your liking */);
UIManager.put("PasswordField.font", /* font of your liking */);
UIManager.put("TextArea.font", /* font of your liking */);
UIManager.put("TextPane.font", /* font of your liking */);
UIManager.put("EditorPane.font", /* font of your liking */);
UIManager.put("TitledBorder.font", /* font of your liking */);
UIManager.put("ToolBar.font", /* font of your liking */);
UIManager.put("ToolTip.font", /* font of your liking */);
UIManager.put("Tree.font", /* font of your liking */);
Je pense que c'est mieux, en l'appelant pour la présente laf, au lieu de l'ensemble de l'UIManager mettre cette
UIManager.getLookAndFeelDefaults()
.put("defaultFont", new Font("Arial", Font.BOLD, 14));
Quelque part dans le principal avant l'instanciation de votre JFrame objet. Il a fonctionné parfaitement pour moi. Rappelez-vous ceci est la police par défaut pour les composants qui n'ont pas précisé la police.
source: http://www.java.net/node/680725
Être conscient que la façon de définir la police par défaut dépend de la Regarder Et de Sentir que vous êtes en utilisant. La solution décrite par Romain Hippeau fonctionne très bien avec beaucoup de LAF, mais pas avec les Nimbus. Celui posté par sherif fonctionne très bien avec les Nimbus, mais pas avec d'autres (Métal, par exemple).
En combinant les deux pourrait fonctionner sur la plupart de LAF, mais aucune de ces solutions ne fonctionne avec GTK+ LAF.
Je pense (mais je ne suis pas sûr), il n'y a pas de solution multi-plateforme.