2014-02-26 39 views
0

我使用JAVA Swing創建了一個下拉列表。當我選擇「跟蹤RCM的狀態:」時,我想在所選選項旁邊創建另一個下拉列表。我應該使用mouseactionlistener來代替嗎?我試圖完成像這樣的事情,當我點擊菜單選項時,還有另一個列表,我可以在菜單選項類別下選擇。例如:http://smoothjazztampabay.com/wp-content/rockettheme/rt_metropolis_wp/menu-options/dropdownmenu.jpgJava Swing下拉列表

我試過使用這段代碼,但是不能。

  if (state == ItemEvent.SELECTED) 
     { 
      ItemSelectable itemS = itemEvent.getItemSelectable(); 
      String cmd = selectedString(itemS); 
      if (cmd.equals("Keep track of status of RCM:")) 
      { 
       RCMCombo2.addItem(RCMCombo); 
       selectionPanel.add(RCMCombo2); 
      } 

代碼的完整版本如下所示:

String [] RCM2 = {"Keep track of status of RCM:", "Add and activate RCM", "Remove RCM", 
    "Display the usage statistics for RCM", 
"Update capabilities of RCMs", "Show RCM used most frequently in the last n days", 
"Display number of times the RCM was emptied in n hours"}; 


RCMCombo2 = new JComboBox(RCM2); 
RCMCombo2.addItemListener(itemListener); 
    RCMCombo2.setEditable(false); 
    RCMCombo2.setBounds(10,10,10,30); 

    //"Updates capabilities of RCM"); Get the location of RCM"); 

    selectionPanel.add(RCMCombo2); 

ItemListener itemListener = new ItemListener() 
{ 
     public void itemStateChanged(ItemEvent itemEvent) 
     { 
     int state = itemEvent.getStateChange(); 
     //System.out.println((state == ItemEvent.SELECTED) ? "Selected" : "Deselected"); 
     //System.out.println("Item: " + itemEvent.getItem()); 
     if (state == ItemEvent.SELECTED) 
     { 
      ItemSelectable itemS = itemEvent.getItemSelectable(); 
      String cmd = selectedString(itemS); 
      if (cmd.equals("Keep track of status of RCM:")) 
      { 
       RCMCombo2.addItem(RCMCombo2); 
       selectionPanel.add(RCMCombo2); 
      } 

任何幫助將不勝感激。謝謝。

+1

沒有「JAVA GUI」。你顯然正在使用Java Swing。 – SebastianH

+0

'selectionPanel.add(RCMCombo2);'嘗試並'重新驗證'和'repaint'在這之後。 –

+0

看起來似乎'revalidate(); repaint()'problem =(。似乎你需要爲你的'RCMCombo2'設置邊界 – alex2410

回答

2

它看起來像你是一個完全錯誤的軌道。我認爲你正在將ItemListener的用法與列表模型的設置混合在一起。 看看這個guide to ComboBox - 它應該包含你需要的所有信息。

+0

關於在模型之間切換的好處 – mKorbel

+0

我試圖使用組合框,但是我想在組合框中選擇一個項目時創建另一個下拉列表 – user21

+0

應該使用mouseactionlistener來代替嗎?在選擇面板中添加了這個組合框,我試圖完成類似這樣的工作,當我點擊菜單選項時,還有另外一個列表,我可以在菜單選項類別下選擇。http://smoothjazztampabay.com/wp-content/rockettheme /rt_metropolis_wp/menu-options/dropdownmenu.jpg – user21