如果从下拉列表中进行选择,如何在选择后放置if语句

时间:2017-04-20 20:52:06

标签: java swing if-statement joptionpane dropdown

我选择了两个下拉列表,我想在选择之后弹出另一个框,根据选择显示信息。当我尝试使用if语句并按下okay按钮时,它会继续到下一行。我从一个showmessagedialog开始,但我想在一些下拉选项中显示警告。它不起作用。我还需要能够循环回主菜单,以便他们可以进行不同的选择。

我现在拥有的例子:

https://i.stack.imgur.com/sBrSJ.png

 int x = JOptionPane.showOptionDialog(null, "Zookeepers would you like to     view animal activities or monitor habitats?",
            "Welcome to the Brooklyn Zoo!",         JOptionPane.YES_NO_CANCEL_OPTION, JOptionPane.QUESTION_MESSAGE, icon,     options,     options[0]);
System.out.println(x);  



if(x==0){  

String[] choices = {"Lions","Tigers","Bears","Giraffes",};
String input = (String) JOptionPane.showInputDialog(null,"Select     Animal:","Zoo Animals",
JOptionPane.QUESTION_MESSAGE,null,choices,choices[1]);


if (choices.equals("Lions"));
String [] button = {"OK","Cancel","Warning"};
JOptionPane.showOptionDialog(null, "\"Animal: Lion\\nName: Leo\\nAge: 5    \\nFeeding Schedule: Twice daily\\n\\nALERT: Cut on left front paw",
    "Animal",JOptionPane.YES_NO_CANCEL_OPTION,JOptionPane.WARNING_MESSAGE,     options, options [0]);

1 个答案:

答案 0 :(得分:2)

  

我有两个下拉列表

没有这样的组件。使用正确的名称JComboBox,这样我们就不必猜测你在说什么了。

我真的不明白你的问题,因为你没有发布一个合适的MCVE,但是,以下是一个明显的问题:

String[] choices = {"Lions","Tigers","Bears","Giraffes",};
String input = (String) JOptionPane.showInputDialog(...);

...

if (choices.equals("Lions"));

变量“choices”是一个数组。您无法将数组与字符串进行比较。

也许你想要:

if (input.equals("Lions"));

同时仔细查看以下代码:

if (choices.equals("Lions"));
String [] button = {"OK","Cancel","Warning"};
JOptionPane.showOptionDialog(...)

您不使用{}来标记if语句的语句。因此,只有第一个语句被认为是if语句的一部分。然后将始终执行JOptionPane ...语句。

编写代码时始终使用以下结构,以免出错:

if (....)
{
    // do something
}

if语句中代码的缩进也使其更易于阅读。