#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, где это подробно объясняется вместе с множеством примеров.