我们应该按照以下方式使用:
UIManager.getLookAndFeelDefaults().put("OptionPane.messageFont", new Font("Arial", Font.BOLD, 14));
UIManager.getLookAndFeelDefaults().put("OptionPane.buttonFont", new Font("Arial", Font.PLAIN, 12));
UIManager.put("OptionPane.messageFont", new Font("Arial", Font.BOLD, 14));
UIManager.put("OptionPane.buttonFont", new Font("Arial", Font.PLAIN, 12));
记得在任何JOptionPane对话框出现之前设置它。 我只是将它放在main
方法的第一行。
想知道为什么要这样做,可以查看UIManager的文档,这对我们很有用。
默认值
UIManager管理三组UIDefaults。 它们的顺序如下:
开发人员默认值。 除了几个例外情况,Swing不会更改开发人员默认值; 这些旨在由开发人员修改和使用。
外观默认值。 外观默认值由安装为当前外观(调用setLookAndFeel())的外观提供。 外观默认值可使用getLookAndFeelDefaults()方法获得。
系统默认值。 系统默认值由Swing提供。
调用各种get方法会依次检查每个默认值,返回第一个非null值。 例如,调用UIManager.getString(“Table.foreground”)首先检查开发人员默认值。 如果开发人员默认值包含“Table.foreground”的值,则返回该值,否则将检查外观默认值,然后是系统默认值。
重要的是要注意,getDefaults返回带有此解析逻辑的UIDefaults的自定义实例。 例如,UIManager.getDefaults()。 getString(“Table.foreground”)等同于UIManager.getString(“Table.foreground”)。 它们都使用刚才描述的算法进行解析。 在许多地方,文档使用单词默认值来引用具有先前描述的解析逻辑的UIDefaults的自定义实例。
因此,我们应该首先更改开发人员默认值。 方法UIManager.put(Object key, Object value)
就是要使用的方法。
public static Object put(Object key, Object value)
将对象存储在开发人员默认值中。 这是getDefaults().put(key,value)的覆盖方法。 这仅影响开发人员默认值,而不影响系统或外观默认值。
参数:
key - 指定检索键的对象
value - 要存储的对象; 有关如何处理null的详细信息,请参阅UIDefaults
返回:UIDefaults.put(java.lang.Object,java.lang.Object)返回的对象
抛出:
NullPointerException - 如果key为null,则会抛出NullPointerException
这正是我要找的:没有额外的面板,不需要覆盖JOptionPane
的默认UI的麻烦。
JOptionPane
中属性名称的完整列表在此处:
http://www.java2s.com/Tutorial/Java/0240__Swing/CustomizingaJOptionPaneLookandFeel.htm
Property String Object Type
OptionPane.actionMap ActionMap
OptionPane.background Color
OptionPane.border Border
OptionPane.buttonAreaBorder Border
OptionPane.buttonClickThreshhold Integer
OptionPane.buttonFont Font
OptionPane.buttonOrientation Integer
OptionPane.buttonPadding Integer
OptionPane.cancelButtonMnemonic String
OptionPane.cancelButtonText String
OptionPane.cancelIcon Icon
OptionPane.errorDialog.border.background Color
OptionPane.errorDialog.titlePane.background Color
OptionPane.errorDialog.titlePane.foreground Color
OptionPane.errorDialog.titlePane.shadow Color
OptionPane.errorIcon Icon
OptionPane.errorSound String
OptionPane.font Font
OptionPane.foreground Color
OptionPane.informationIcon Icon
OptionPane.informationSound String
OptionPane.inputDialogTitle String
OptionPane.isYesLast Boolean
OptionPane.messageAnchor Integer
OptionPane.messageAreaBorder Border
OptionPane.messageFont Font
OptionPane.messageForeground Color
OptionPane.messageDialogTitle String
OptionPane.minimumSize Dimension
OptionPane.noButtonMnemonic String
OptionPane.noButtonText String
OptionPane.noIcon Icon
OptionPane.okButtonMnemonic String
OptionPane.okButtonText String
OptionPane.okIcon Icon
OptionPane.questionDialog.border.background Color
OptionPane.questionDialog.titlePane.background Color
OptionPane.questionDialog.titlePane.foreground Color
OptionPane.questionDialog.titlePane.shadow Color
OptionPane.questionIcon Icon
OptionPane.questionSound String
OptionPane.sameSizeButtons Boolean
OptionPane.separatorPadding Integer
OptionPane.setButtonMargin Boolean
OptionPane.titleText String
OptionPane.warningDialog.border.background Color
OptionPane.warningDialog.titlePane.background Color
OptionPane.warningDialog.titlePane.foreground Color
OptionPane.warningDialog.titlePane.shadow Color
OptionPane.warningIcon Icon
OptionPane.warningSound String
OptionPane.windowBindings Object[ ]
OptionPane.yesButtonMnemonic String
OptionPane.yesButtonText String
OptionPane.yesIcon Icon
OptionPaneUI String