我选择了两个下拉列表,我想在选择之后弹出另一个框,根据选择显示信息。当我尝试使用if语句并按下okay按钮时,它会继续到下一行。我从一个showmessagedialog开始,但我想在一些下拉选项中显示警告。它不起作用。我还需要能够循环回主菜单,以便他们可以进行不同的选择。
我现在拥有的例子:
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]);
答案 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语句中代码的缩进也使其更易于阅读。