Вопрос

Мой код JOptionPane выглядит следующим образом:

selectedSiteName = JOptionPane.showInputDialog("Enter the name of the new site:");

Это визуализирует ввод с помощью текстового поля и кнопок «ОК» и «Отмена».Мне нужно определить, была ли нажата кнопка «Отмена».

Ваше здоровье.

Это было полезно?

Решение

Проверьте, выбрано ли выбранноеSiteName == null .
Это произойдет, если пользователь нажмет кнопку «Отмена» или закроет диалоговое окно.

Другие советы

Прочтите API JOptionPane и перейдите по ссылке на учебник Swing «Как использовать диалоги», чтобы увидеть рабочий пример.

if(selectedSiteName == JOptionPane.CANCEL_OPTION)
{


}

должно сработать.

JOptionPane расширяет JComponent.

Методы JOptionPane
1) .showMessageDialog();// ПУСТОТА :-(
2) .showInputDialog();// возвращаем СТРОКУ :-)
3) .showConfirmDialog();// возвращаем целое :-)
-> и многое другое...

Пример:

void myMethod() {

        JDialog jd = new JDialog();
        jd.setDefaultCloseOperation(1);

        JOptionPane jop = new JOptionPane();
        int val = jop.showConfirmDialog(jd, "Hello");
        if(val == 0) jop.showMessageDialog(null, "Success", "INFO", jop.INFORMATION_MESSAGE);

        System.out.println(val);

        jd.add(jop);

    }

Полезная ссылка:
- Почему JOptionPane.getValue() продолжает возвращать неинициализированное значение
- https://docs.oracle.com/javase/7/docs/api/javax/swing/JOptionPane.html

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top