我向 JCheckBox 组件添加了一个监听器,我想手动调用监听器。怎么做?
myCheckBox.selected(false)
然后我想调用 myCheckBox 监听器。你有更好的主意吗?
我知道我有点晚了,但这应该可以解决问题:
ItemListener listener = new ItemListener() {
public void itemStateChanged(ItemEvent e) {
//whatever your itemStateChanged() looks like.
}
};
JCheckBox checkBox = new JCheckBox();
checkBox.addItemListener(listener);
然后,每当您需要手动调用它时:
listener.itemStateChanged(
new ItemEvent(checkBox, ItemEvent.ITEM_STATE_CHANGED, checkBox, 0));
如果您匿名创建了侦听器,您仍然可以像这样访问它:
checkBox.getItemListeners()[0].itemStateChanged(
new ItemEvent(checkBox, ItemEvent.ITEM_STATE_CHANGED, checkBox, 0));
我真的不知道您使用什么复选框组件。您没有告诉我们您使用哪个框架或提供其他有用的上下文信息。
但总的来说:你的听众是 impl。一个界面。这个接口定义了你的组件(checkBox)调用的回调方法。
如果您有一个监听器 obj 的实例。你可以直接调用这个方法。
与其尝试调用监听器,为什么不直接使用单独的方法呢?
ItemListener listener = new ItemListener() {
public void itemStateChanged(ItemEvent e) {
method();
}
};
public void method() {
//code you want to run
}
然后,method()
当您想运行与侦听器分开的代码时,只需调用即可。