我有一个组合框,其中包含一个项目,说“a”。我想调用该组合框的动作监听器仅在手动选择项“a”时才被调用。 我也尝试了ItemStateChanged,但它与Action Listener类似。
我该怎么做?
答案 0 :(得分: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 :(得分:1)
我不认为你只能听一个ComboBox项目的事件,但是当听完整个组合框时,在回调中你可以在处理事件之前检查所选项目(或忽略它)。
在 Sumit Singh 提供的示例中,检查受影响的项目
// Get the affected item
Object item = evt.getItem();
//check item
if(item == <the item you want to watch>)
{
//process
}
答案 2 :(得分:0)
如何制作2个动作侦测程序,将会看到是否选择了'a',如果是,它将调用第二个