我为JCheckBox组件添加一个监听器,我想手动调用监听器。这样做吗?
myCheckBox.selected(false)
然后我想调用myCheckBox监听器。你有更好的主意吗?
答案 0 :(得分:2)
我知道我有点晚了,但这应该可以解决问题:
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));
答案 1 :(得分:0)
我真的不知道你使用的是什么checkBox组件。您没有告诉我们您使用哪个框架或提供其他有用的上下文信息。
但总的来说:你的听众是impl。一个界面。此接口定义组件(checkBox)调用的回调方法。
如果您有一个监听器obj的实例。你可以直接调用这个方法。
答案 2 :(得分:0)
不是试图调用Listener,为什么不使用单独的方法?
ItemListener listener = new ItemListener() {
public void itemStateChanged(ItemEvent e) {
method();
}
};
public void method() {
//code you want to run
}
然后,当您想要与监听器分开运行代码时,只需调用method()
。