Окно JOptionPane Да или Нет
Я пытаюсь создать сообщение с помощью кнопки "Да" или "Нет". Затем появится окно с определенным сообщением, которое зависит от того, нажал ли пользователь "Да" или "Нет"
Вот мой код:
public class test{
public static void main(String[] args){
//default icon, custom title
int n = JOptionPane.showConfirmDialog(
null,
"Would you like green eggs and ham?",
"An Inane Question",
JOptionPane.YES_NO_OPTION);
if(true){
JOptionPane.showMessageDialog(null, "HELLO");
}
else {
JOptionPane.showMessageDialog(null, "GOODBYE");
}
System.exit(0);
}
}
Сейчас он печатает HELLO независимо от того, нажимаете ли вы Yes или No. Как мне заставить его показывать GOODBYE, когда пользователь выбирает No?
Ответы
Ответ 1
"if (true)" всегда будет истинным, и он никогда не станет другим. Если вы хотите, чтобы он работал правильно, вы должны сделать это:
int reply = JOptionPane.showConfirmDialog(null, message, title, JOptionPane.YES_NO_OPTION);
if (reply == JOptionPane.YES_OPTION) {
JOptionPane.showMessageDialog(null, "HELLO");
}
else {
JOptionPane.showMessageDialog(null, "GOODBYE");
System.exit(0);
}
Ответ 2
Вы всегда проверяете истинное состояние, поэтому ваше сообщение всегда будет показывать.
Вы должны заменить инструкцию if (true)
на if ( n == JOptionPane.YES_OPTION)
Когда один из методов showXxxDialog возвращает целое число, возможно значения:
YES_OPTION NO_OPTION CANCEL_OPTION OK_OPTION CLOSED_OPTION
От здесь
Ответ 3
Вы можете исправить это следующим образом:
if(n == JOptionPane.YES_OPTION)
{
JOptionPane.showMessageDialog(null, "HELLO");
}
else
{
JOptionPane.showMessageDialog(null, "GOODBYE");
}
Ответ 4
Вы можете сделать это проще:
int test = JOptionPane.showConfirmDialog(null, "Would you like green eggs and ham?", "An insane question!");
switch(test) {
case 0: JOptionPane.showMessageDialog(null, "HELLO!"); //Yes option
case 1: JOptionPane.showMessageDialog(null, "GOODBYE!"); //No option
case 2: JOptionPane.showMessageDialog(null, "GOODBYE!"); //Cancel option
}
Ответ 5
Вы пишете if(true)
, чтобы он всегда показывал сообщение "Hello".
Вы должны принять решение на основе возвращаемого значения n
.
Ответ 6
Код для сообщений "Да" и "Нет"
int n = JOptionPane.showConfirmDialog(
null,
"sample question?!" ,
"",
JOptionPane.YES_NO_OPTION);
if(n == JOptionPane.YES_OPTION)
{
JOptionPane.showMessageDialog(null, "Opening...");
}
else
{
JOptionPane.showMessageDialog(null, "Goodbye");
System.exit(0);
Ответ 7
Что-то в этом роде....
//default icon, custom title
int n = JOptionPane.showConfirmDialog(null,"Would you like green eggs and ham?","An Inane Question",JOptionPane.YES_NO_OPTION);
String result = "?";
switch (n) {
case JOptionPane.YES_OPTION:
result = "YES";
break;
case JOptionPane.NO_OPTION:
result = "NO";
break;
default:
;
}
System.out.println("Replace? " + result);
вы также можете посмотреть DialogDemo