2009-11-20 4 views

Répondre

5

Je suppose que vous voulez parler des polices sur vos JButton s à l'intérieur du JOptionPane sont trop petites.

Pour cela, je suggère d'utiliser Swing Utils par Darryl Burke. Maintenant, vous pouvez facilement faire, par exemple.

for (JButton button : SwingUtils.getDescendantsOfType(JButton.class, pane)) { 
    button.setFont(new Font("Verdana", Font.BOLD, 32)); 
} 

pour régler les polices sur tous les JButton s à l'intérieur de JOptionPane volet.

Si vous souhaitez définir la police du message JOptionPane lui-même, utilisez par ex.

UIManager.put(
    "OptionPane.messageFont", 
    new FontUIResource(new Font("Verdana", Font.BOLD, 32)) 
); 

En ce qui concerne la « espacement des boutons » Question: Je ne sais pas si cela peut être fait sans étendre & faire vous-même JOptionPane sur mesure.

+0

Merci beaucoup! –

0

Vous ne pouvez pas spécifier un espacement entre seulement 2 boutons sur 3 (selon la question OP) mais vous pouvez augmenter la taille de l'espacement entre tous les boutons:

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. 

ou peut-être quelque chose comme:

lm2.setPadding(lm2.getPadding() * 2) // double the spacing between ALL buttons. 

S'il n'y avait que 2 boutons, puis en utilisant ces appels LayoutManager vous pouvez obtenir le résultat souhaité. Cependant, pour les espaces de tailles variables entre les boutons, vous devez implémenter votre propre JDialog où vous contrôlez vous-même la disposition de son JPanel.

Un JOptionPane est composé de 2 JPanels ... un pour le message (et l'icône) lui-même, et un pour les boutons, c'est pourquoi nous obtenons le composant (1) ci-dessus.

Je sais que la question a 4 ans mais j'ai fait cette réponse parce que j'avais un besoin semblable aujourd'hui et n'ai pas pu trouver la réponse N'IMPORTE O on sur la débordement de pile ou ailleurs.

Questions connexes