JRadioButtonMenuItem的监听器可以处理事件

时间:2013-10-29 14:16:10

标签: java swing jmenuitem

我有一个扩展JRadioButtonMenuItem的类。有什么方法可以在我的类的实例从UI处理时捕获事件。我不确定哪个听众必须抓住这个事件。

更清楚地说,我有一组JRadioButtonMenuItem实例(实际上是扩展JRadioButtonMenuItem的类的实例),根据我将实例作为监听器添加到实例的实现我的班级,说EventSourceEx并倾听。当JRadioButtonMenuItem的实例被创建时,这将被添加为监听器。

因此,当包含上述菜单项实例的 JMenu 消失时,我想从JRadioButtonMenuItem实例中删除EventSourceEx。所以我的想法是,如果我可以从JRadioButtonMenuItemJMenu获取一个偶数,我会收到通知,菜单/ Menuitem正在处理,以便我将从中移除实例EventSourceExJMenuJRadioButtonMenuItem是否有任何机制可以通知即使它消失了。

2 个答案:

答案 0 :(得分:1)

而不是试图捕获此事件。专注于捕获您关心的事件,即处理按钮所在的容器。例如,如果按钮位于正在关闭的帧上,则添加WindowListener。如果以编程方式删除该按钮并重新验证,则将该代码中的调用添加到您需要执行的逻辑中。

答案 1 :(得分:1)

将属性更改的侦听器添加到JMenuItem组件。

覆盖propertyChange()方法

public void propertyChange(PropertyChangeEvent theEvt)

{

if(!isShowing()&&“ancestor”.equalsIgnoreCase(theEvt.getPropertyName())&& theEvt.getNewValue()== null)

 {

 // Youcan remove your listener

 }

}

尝试这个......让我知道