手动调用组件监听器

Nas*_*sir 3 java swing

我向 JCheckBox 组件添加了一个监听器,我想手动调用监听器。怎么做?

myCheckBox.selected(false) 
Run Code Online (Sandbox Code Playgroud)

然后我想调用 myCheckBox 侦听器。你有更好的主意吗?

Lor*_*aad 5

我知道我有点晚了,但这应该可以解决问题:

ItemListener listener = new ItemListener() {
    public void itemStateChanged(ItemEvent e) {
         //whatever your itemStateChanged() looks like.
    }
};
JCheckBox checkBox = new JCheckBox();
checkBox.addItemListener(listener);
Run Code Online (Sandbox Code Playgroud)

然后,每当您需要手动调用它时:

listener.itemStateChanged(
                new ItemEvent(checkBox, ItemEvent.ITEM_STATE_CHANGED, checkBox, 0));
Run Code Online (Sandbox Code Playgroud)

如果您匿名创建了您的侦听器,您仍然可以像这样访问它:

checkBox.getItemListeners()[0].itemStateChanged(
                new ItemEvent(checkBox, ItemEvent.ITEM_STATE_CHANGED, checkBox, 0));
Run Code Online (Sandbox Code Playgroud)