1

我有一个扩展 JRadioButtonMenuItem 的类。有没有一种方法可以在我的类实例从 UI 中释放时捕获事件。我不确定必须由哪个侦听器来捕获此事件。

更清楚地说,我有一组JRadioButtonMenuItem实例(实际上是扩展类的实例JRadioButtonMenuItem),根据我的实现,我将实例作为侦听器添加到我的一个类中,比如说EventSourceEx和侦听。这将在JRadioButtonMenuItem 创建实例时添加为侦听器。

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

4

2 回答 2

1

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

覆盖 propertyChange() 方法

公共无效 propertyChange(PropertyChangeEvent theEvt)

{

if (!isShowing() && "祖先".equalsIgnoreCase(theEvt.getPropertyName()) && theEvt.getNewValue() == null)

 {

 // Youcan remove your listener

 }

}

试试这个……然后告诉我

于 2013-10-30T13:42:39.170 回答
1

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

于 2013-10-29T15:30:54.280 回答