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.
Merci beaucoup! –