我的 JOptionPanes 中的文本太小了,我想知道如何更改窗格内文本的字体。另外,我想在两个按钮之间设置一个空格。
就像是
|Canecl| |DoneSave| |Save|
我的 JOptionPanes 中的文本太小了,我想知道如何更改窗格内文本的字体。另外,我想在两个按钮之间设置一个空格。
就像是
|Canecl| |DoneSave| |Save|
我猜你的意思是你JButton
的 s 里面的字体JOptionPane
太小了。
为此,我建议使用Darryl Burke 的Swing Utils。现在你可以很容易地做例如
for (JButton button : SwingUtils.getDescendantsOfType(JButton.class, pane)) {
button.setFont(new Font("Verdana", Font.BOLD, 32));
}
在窗格JButton
内的所有 s上设置字体。JOptionPane
如果要设置JOptionPane
消息本身的字体,请使用例如
UIManager.put(
"OptionPane.messageFont",
new FontUIResource(new Font("Verdana", Font.BOLD, 32))
);
关于“按钮间距”问题:我不知道是否可以在不扩展和自定义的情况下做到这JOptionPane
一点。
您不能仅指定 3 个按钮中的 2 个按钮之间的间距(根据 OP 的问题),但您可以增加所有按钮之间的间距大小:
JPanel buttonPanel = (JPanel) myOptionPane.getComponent(1);
BasicOptionPaneUI.ButtonAreaLayout lm2 = (BasicOptionPaneUI.ButtonAreaLayout) buttonPanel.getLayout();
lm2.setPadding(20);
lm2.setSyncAllWidths(false); // buttons will vary in size as needed.
或者可能是这样的:
lm2.setPadding(lm2.getPadding() * 2) // double the spacing between ALL buttons.
如果只有 2 个按钮,那么使用这些LayoutManager调用可以实现所需的结果。
但是,对于按钮之间的不同大小的空间,您需要实现自己的 JDialog,您可以自己控制其 JPanel 的布局。
一个 JOptionPane 由 2 个 JPanel 组成……一个用于消息(和图标)本身,一个用于按钮,这就是我们上面 getComponent(1) 的原因。
我知道这个问题已经有 4 年历史了,但我之所以做出这个答案是因为我今天有类似的需求,并且在 Stack Overflow 或其他地方都找不到答案。