2017-04-20 254 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