2010-10-25 3 views
0

В строке кода ниже отображается диалоговое окно с двумя кнопками: «Да» и «Нет». Я хочу, чтобы эти две кнопки были как минимум в 3 раза больше фактического размера по умолчанию. Я понимаю, что я могу создать настраиваемую кнопку JFrame и добавить и установить размер, но у меня есть множество диалоговых окон; не похоже практичный.Как увеличить кнопки на диалоговых окнах JOptionPane?

JOptionPane.showConfirmDialog(null, "Did you eat", "Confirmation", JOptionPane.YES_NO_OPTION); 

Причина, почему я хочу сделать кнопки больше, потому что я увеличил размер шрифта в диалоговых окнах (одна строка кода влияет все диалоговые окна в моем коде). И маленький (по умолчанию) размер кнопок выглядит теперь как сейчас, по сравнению с этим.

Итак, как я могу манипулировать размерами диалогового окна JOptionPane?

ответ

2

Добавление этого параметра перед диалоговыми окнами, изменит шрифт текста кнопки; тем самым увеличивая размеры кнопки. Убедитесь в том, чтобы импортировать это:

import java.awt.Font; 
import javax.swing.plaf.FontUIResource; 




UIManager.put("OptionPane.buttonFont", new FontUIResource(new Font("ARIAL",Font.PLAIN,35))); 

Если хотите иметь другой шрифт для конкретного диалогового окна, а затем вернуться к тому, что ты, используя все, что вам нужно сделать, это поместить эту строку кода и изменить размер шрифта. затем после диалогового окна поместите оригинал обратно. Это как бы переопределяет это каждый раз, когда вы это делаете.

2

Вам нужно будет создать экземпляр JOptionPane и установить новый PreferredSize(). Использование setSize() не работает должным образом. Например:

public static void showMessageBox(final String strTitle, final String strMessage) 
{ 
     //Redone for larger OK button 
     JOptionPane theOptionPane = new JOptionPane(strMessage,JOptionPane.INFORMATION_MESSAGE); 
     JPanel buttonPanel = (JPanel)theOptionPane.getComponent(1); 
     // get the handle to the ok button 
     JButton buttonOk = (JButton)buttonPanel.getComponent(0); 
     // set the text 
     buttonOk.setText(" OK "); 
     buttonOk.setPreferredSize(new Dimension(100,50)); //Set Button size here 
     buttonOk.validate(); 
     JDialog theDialog = theOptionPane.createDialog(null,strTitle); 
     theDialog.setVisible(true); //present your new optionpane to the world. 

}