我有一个主框架,它有一个菜单栏,让用户可以更改我程序中所有文本的字体。我可以设置主框架的字体,但我如何设置所有框架的更改和对话框???
答案 0 :(得分:1)
您可以使用UIManager
的某位王来记录要使用的字体,然后使用Change Font
操作在更新UI Swing组件之前更新UIManager
中的字体。
This thread对此主题的不同可能解决方案有更多的了解。
答案 1 :(得分:0)
Swing application framework有一个功能强大的资源管理器,允许您通过属性文件自定义字体和其他外观设置。它具有很大的灵活性,允许您为每个对话框指定这些类型的设置。可以找到资源管理器的简介here。
答案 2 :(得分:0)
我们这样做是为了覆盖我们使用的大多数组件的字体。
Font font = /*some font*/;
UIManager.put("Button.font", font); //frozen
UIManager.put("ToggleButton.font", font); //frozen
UIManager.put("RadioButton.font", font); //frozen
UIManager.put("CheckBox.font", font); //frozen
UIManager.put("ColorChooser.font", font); //frozen
UIManager.put("ComboBox.font", font); //frozen
UIManager.put("Label.font", font); //frozen
UIManager.put("List.font", font); //frozen
UIManager.put("MenuBar.font", font); //frozen
UIManager.put("MenuItem.font", font); //frozen
UIManager.put("RadioButtonMenuItem.font", font); //frozen
UIManager.put("CheckBoxMenuItem.font", font); //frozen
UIManager.put("Menu.font", font); //frozen
UIManager.put("PopupMenu.font", font); //frozen
UIManager.put("OptionPane.font", font); //frozen
UIManager.put("Panel.font", font); //frozen
UIManager.put("ProgressBar.font", font); //frozen
UIManager.put("ScrollPane.font", font); //frozen
UIManager.put("Viewport.font", font); //frozen
UIManager.put("TabbedPane.font", font); //frozen
UIManager.put("Table.font", font); //frozen
UIManager.put("TableHeader.font", font); //frozen
UIManager.put("TextField.font", font); //frozen
UIManager.put("PasswordField.font", font); //frozen
UIManager.put("TextArea.font", font); //frozen
UIManager.put("TextPane.font", font); //frozen
UIManager.put("EditorPane.font", font); //frozen
UIManager.put("TitledBorder.font", font); //frozen
UIManager.put("ToolBar.font", font); //frozen
UIManager.put("ToolTip.font", font); //frozen
UIManager.put("Tree.font", font); //frozen
UIManager.put("OptionPane.messsageFont", font); // frozen
UIManager.put("OptionPane.buttonFont", font); //frozen
答案 3 :(得分:0)
您可以使用下面的代码为所有具有可设置字体的UIManager元素设置字体。
如果元素没有Font属性,则UIManager.getFont(key)返回null
。
Font font = new Font("Arial", Font.PLAIN, 10);
Enumeration keys = UIManager.getLookAndFeelDefaults().keys();
while (keys.hasMoreElements())
{
Object key = keys.nextElement();
if (UIManager.getFont(key) != null)
{
UIManager.put(key, font);
}
}
但是,诀窍是在应用程序的早期(例如,字面上是主文件的第一行)执行此操作,或者稍后使用SwingUtilities.updateComponentTreeUI(<your top component>);
进行更新。