Создание JOptionPane с 4 вариантами - PullRequest
8 голосов
/ 11 августа 2009

Мне нужно сделать собственный диалог с 4 вариантами, но, насколько я могу судить, у вас может быть только один с тремя вариантами. Вот как я могу создать панель с тремя вариантами:

        Frame refFrame = DialogUtils.getReferenceFrame();

        ///TODO:
        /// - Use DialogUtils
        int option = JOptionPane.showOptionDialog(refFrame,
            msg,
            rsc.str("918"),
            JOptionPane.YES_NO_CANCEL_OPTION,
            JOptionPane.INFORMATION_MESSAGE,
            DialogUtils.INFO_ICON,
            options,
            options[0]);

Но я не смог найти какую-то открытую замену YES_NO_CANCEL_OPTION. Есть ли способ заставить JOptionPane разрешить четыре варианта?

Ответы [ 2 ]

14 голосов
/ 11 августа 2009

Вы можете использовать любые константы опций JOptionPane, вам просто нужно предоставить массив опций размером 4:

public static void main(String[] args) {
    String[] options = new String[] {"Yes", "No", "Maybe", "Cancel"};
    int response = JOptionPane.showOptionDialog(null, "Message", "Title",
        JOptionPane.DEFAULT_OPTION, JOptionPane.PLAIN_MESSAGE,
        null, options, options[0]);

    // Where response == 0 for Yes, 1 for No, 2 for Maybe and -1 or 3 for Escape/Cancel.
}
1 голос
/ 11 августа 2009

Просто используйте массив options размера 4 вместо 3 ...

...