我的JOptionPanes中的文字很小我想知道如何更改窗格内文本的字体。另外,我想在两个按钮之间设置一个空格。
像
这样的东西 |Canecl| |DoneSave| |Save|
答案 0 :(得分:4)
我猜您的意思是JButton
内JOptionPane
内的字体太小。
为此,我建议使用Darryl Burke的Swing Utils。现在你可以很容易地做到这一点。
for (JButton button : SwingUtils.getDescendantsOfType(JButton.class, pane)) {
button.setFont(new Font("Verdana", Font.BOLD, 32));
}
在JButton
窗格内的所有JOptionPane
上设置字体。
如果要设置JOptionPane
消息本身的字体,请使用例如
UIManager.put(
"OptionPane.messageFont",
new FontUIResource(new Font("Verdana", Font.BOLD, 32))
);
关于“按钮的间距”问题:我不知道是否可以在没有延伸的情况下完成自己定制JOptionPane
。
答案 1 :(得分:0)
你不能只指定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溢出或其他地方找到答案。