2016-04-03 40 views
-1

我創建了一個JComboBox,它使用字符串的數組列表填充。我的comboBox按照我的意願正確填充。我得到選擇的項目時出現問題:當我在btnGo.addActionListener中打印時,我意識到它總是與選中的一樣,即使我更改了選擇並再次單擊「開始」。有沒有辦法讓選擇真正改變?我可以做同樣的事情,而不必點擊開始?就像從組合框中選擇項目一樣,立即執行操作。從comboBox中選擇的項目總是相同的

這是我的檢查是越來越選擇的項目:

String selected = comboBox.getSelectedItem().toString(); 

然後我在btnGo.addActionListener

+2

爲了得到滿意的答案,你可能想創建併發佈一個體面的[mcve]。請閱讀鏈接,看看這是什麼。 –

+2

例如,對於我們所知道的全部內容,您可能沒有在您的偵聽器中獲取所選項目,而只是將其打印在那裏。不要讓我們猜 - 向我們展示。 –

+3

[如何使用組合框](https://docs.oracle.com/javase/tutorial/uiswing/components/combobox.html)和[如何編寫ActionListener](https://docs.oracle.com/ javase/tutorial/uiswing/events/actionlistener.html)可能是一個好的開始 – MadProgrammer

回答

2

打印selected是有可能在選擇組合框元素來執行動作。你只需要添加一個ActionListener到你的組合框;這裏是一個示例代碼:

comboBox.addActionListener(new ActionListener() { 
     public void actionPerformed(ActionEvent event) { 
      JComboBox comboBox = (JComboBox) event.getSource(); 

      Object selected = comboBox.getSelectedItem(); 
      if(selected.toString().equals("item1")) 
      field.setText("AA"); 
      else if(selected.toString().equals("item2")) 
       field.setText("BB"); 

     } 
    }); 
    getContentPane().add(comboBox); 
    getContentPane().add(field); 
} 

請分享源代碼以幫助您解決選擇問題。