2009-11-20 21 views

回答

5

我猜你的意思是你的JButton S上的字體內JOptionPane太小。

爲此,我建議使用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自己。

+0

非常感謝! – 2010-08-25 13:00:48

0

你不能只指定2個按鍵之間的間距開出3(根據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個按鈕,然後使用這些佈局管理電話,你可以達到理想的效果。

但是您需要實現自己的JDialog,你控制它自己的JPanel的佈局按鍵之間不同大小的空間。

一個JOptionPane的由2個JPanels ......一個用於信息(和圖標)本身,以及一個用於按鈕,這就是爲什麼我們getComponent(1)以上。

我知道這個問題是4歲,但我做了這個答案,因爲我今天也有類似的需要,不能在任何地方堆棧溢出或其他地方找到答案。