2012-08-30 35 views
0

我有一個組合框,其中包含一個項目說讓「一個」。我想調用該組合框的動作監聽器,只有在手動選擇項目「a」完成時纔會被調用。 我也試過ItemStateChanged,但它的作用類似於Action Listener。JComboBox工作

我該怎麼辦?

+2

爲什麼? (15個字符) – kleopatra

+1

添加監聽器_before_設置初始選擇可能會出現需要此操作。如果這不是問題,發佈你的[sscce](http://sscce.org/)可能有助於澄清。 – trashgod

回答

1

看看下面的例子。

// Create an editable combobox 
String[] items = {"item1", "item2"}; 
JComboBox cb = new JComboBox(items); 
cb.setEditable(true); 

// Create and register listener 
MyItemListener actionListener = new MyItemListener(); 
cb.addItemListener(actionListener); 

class MyItemListener implements ItemListener { 
// This method is called only if a new item has been selected. 
    public void itemStateChanged(ItemEvent evt) { 
    JComboBox cb = (JComboBox)evt.getSource(); 

    // Get the affected item 
    Object item = evt.getItem(); 

    if (evt.getStateChange() == ItemEvent.SELECTED) { 
     // Item was just selected 
    } else if (evt.getStateChange() == ItemEvent.DESELECTED) { 
     // Item is no longer selected 
    } 
} 
} 
1

我不認爲你可以聽的事件只爲一個組合框項目,但整體上組合框聽的時候,回調可以處理的事件(或忽略它)之前檢查所選項目。

在由薩米特·辛格提供的爲例,檢查受影響的項目

// Get the affected item 
Object item = evt.getItem(); 

//check item 
if(item == <the item you want to watch>) 
{ 
    //process 
} 
0

如何讓2周的ActionListeners,如果「A」選擇一個會看到,如果它是它將調用第二一個

+0

你可以請發表正確的解釋和代碼如何實現,因爲它似乎與我無關...... –