2017-04-20 252 views
0

我选择了两个下拉菜单后,我希望根据所选内容弹出另一个框以显示信息。当我尝试使用if语句并按下okay按钮时,它会继续到下一行。我从showmessagedialog开始,但我想在一些下拉选项中显示警告。它不工作。我还需要能够回到主菜单,以便他们可以做出不同的选择。什么我现在有如何从选择下拉菜单中选择if语句

例如:

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

1)为了更快地获得更好的帮助,请发布[MCVE]或[简短,独立,正确的示例](http://www.sscce.org/)。 2)使用合乎逻辑的一致形式缩进代码行和块。缩进旨在使代码的流程更易于遵循! –

回答

2

我有两个下拉列表

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

我真的不明白你的问题,因为你还没有公布正确的MCVE,但是,下面是一个明显的问题:

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

... 

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

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

也许你想:

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

而且仔细看下面的代码:

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

不要使用{}标记if语句的语句。所以只有第一个陈述被认为是if陈述的一部分。 JOptionPane ...语句将始终执行。

始终使用下面的结构,当你写的代码,这样你就不会犯错误:

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

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

+0

我收到JOptionPane的错误,说实际和正式参数列表的长度不同。我试图设置if(input.equals(“狮子会”)),当我运行它 – smenon

+0

@唑泰克,这是基本的Java。我不是一个心灵读者。我不知道你会做错什么。你还没有发布你的“最小,完整和可验证的例子”,所以我想你并不真的需要帮助。你得到你所给的。学习如何解决问题所需的所有信息。 – camickr

+0

我正在努力。我很抱歉你觉得我正在造成问题。如果这是一个问题,我将不再发帖。 – smenon