Как я могу использовать ответ из JOptionPane?

#java #joptionpane

#java #joptionpane

Вопрос:

Это первый раз, когда я использую окно подтверждения, и я хотел бы получить несколько советов о том, как его использовать, пожалуйста, я хочу использовать ввод пользователя «Да или нет», но не уверен, как это сделать? Если бы я хотел сослаться на входные данные из JOptionPane в операторе if, как бы это сделать?

 JOptionPane.showConfirmDialog(null, "Click yes to terminate. ", "TERMINATE SIMULATION?", JOptionPane.YES_NO_OPTION);
  

Спасибо.

Ответ №1:

используйте его как:

    int result = JOptionPane.showConfirmDialog(null, "Click yes to terminate. ", "TERMINATE SIMULATION?", JOptionPane.YES_NO_OPTION);

    if (JOptionPane.YES_OPTION == result) {
                System.out.println("yes");
     } else if (JOptionPane.NO_OPTION == result) {
                System.out.println("No");
     }else{
            System.out.println("Nothing");
    }
  

Также найдите типы параметров и возвращаемые значения ниже (из источника):

  /**
     * Type meaning Look and Feel should not supply any options -- only
     * use the options from the <code>JOptionPane</code>.
     */
    public static final int         DEFAULT_OPTION = -1;
    /** Type used for <code>showConfirmDialog</code>. */
    public static final int         YES_NO_OPTION = 0;
    /** Type used for <code>showConfirmDialog</code>. */
    public static final int         YES_NO_CANCEL_OPTION = 1;
    /** Type used for <code>showConfirmDialog</code>. */
    public static final int         OK_CANCEL_OPTION = 2;

    //
    // Return values.
    //
    /** Return value from class method if YES is chosen. */
    public static final int         YES_OPTION = 0;
    /** Return value from class method if NO is chosen. */
    public static final int         NO_OPTION = 1;
    /** Return value from class method if CANCEL is chosen. */
    public static final int         CANCEL_OPTION = 2;
    /** Return value form class method if OK is chosen. */
    public static final int         OK_OPTION = 0;
    /** Return value from class method if user closes window without selecting
     * anything, more than likely this should be treated as either a
     * <code>CANCEL_OPTION</code> or <code>NO_OPTION</code>. */
    public static final int         CLOSED_OPTION = -1;
  

Кроме того, не выполняйте проверку int непосредственно на значение ответа, например if(1==result) , for NO_OPTION , всегда используйте константы из JoptionPane класса.

Ответ №2:

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