2015-10-07 3 views
0

Итак, я был в тупике на этом фрагменте кода около недели, я хочу, чтобы код отправил сообщение об ошибке, когда пользователь выбирает «Нет» или «Отменить», однако я получаю сообщение об ошибке, которое говорит мне, что NO и CANCEL не являются переменными. Есть ли у кого-нибудь какие-либо предложения относительно того, как я могу преодолеть эту проблему?Могу ли я использовать операторы IF с диалогом сообщений в java?

int mc = JOptionPane.QUESTION_MESSAGE; 
    int bc = JOptionPane.YES_NO_CANCEL_OPTION; 

    int ch = JOptionPane.showConfirmDialog (null, "Select:", "Title", bc, mc); 

    if (bc == NO) 
    { 
     JOptionPane.showInputDialog("Sorry, you cannot continue without agreeing to the rules."); 
    } 
    else if (bc == CANCEL) 
    { 
     JOptionPane.showInputDialog("Sorry, you cannot continue without agreeing to the rules."); 
    } 
    else 
    { 
     JOptionPane.showInputDialog("Thank you, you may continue!"); 
    } 
+3

'=' для назначения. Используйте '==' для сравнения – Reimeus

+1

И что, на ваш взгляд, «НЕТ» и «ОТМЕНА»? – Tom

+0

Значение bc должно быть на входе пользователя и преобразовывать его тип независимо от 'NO' и' CANCEL', тогда вы можете сравнить значения с помощью функции типа. –

ответ

1

Подробнее об этом in the JOptionPane Javadoc.

В коде, который вы дали, кнопка, вы нажали идентифицируется возвращаемым значением из showConfirmDialog, который вы назначили на ch, не bc. В вашем случае логика должна быть

if (ch == JOptionPane.NO_OPTION) { 
    ... 
} 
else if (ch == JOptionPane.CANCEL_OPTION) { 
    ... 
} 
else { 
    ... 
} 
+0

Это сработало отлично, спасибо вам большое, я работал над этим раньше, но он рухнул на меня, надеюсь, что он не сделает то же самое снова! – TiaC

Смежные вопросы