1

JRadioButtonMenuItem を拡張するクラスがあります。クラスのインスタンスが UI から破棄されているときにイベントをキャプチャする方法はありますか。このイベントをキャプチャするために必要なリスナーがわかりません。

より明確に言えば、JRadioButtonMenuItemインスタンスのセット(実際には拡張するクラスのインスタンスJRadioButtonMenuItem)があります。実装によると、インスタンスはリスナーとしてクラスの1つに追加されEventSourceEx、リッスンします。JRadioButtonMenuItem これは、 のインスタンスが作成されるときにリスナーとして追加されます。

したがって、上記のメニュー項目インスタンスを含むJMenuJRadioButtonMenuItemが消えたら、 fromEventSourceExインスタンスを削除したいと思います。したがって、JRadioButtonMenuItemまたはからキャプチャできるJMenuイベントがある場合、メニュー/Menuitem が破棄されていることが通知され、 からインスタンスを削除するというのが私の考えですEventSourceEx。消えた場合でも通知するメカニズムを持っているJMenuか、持っています。JRadioButtonMenuItem

4

2 に答える 2

1

このイベントをキャプチャしようとする代わりに。ボタンがオンになっているコンテナを破棄するという、重要なイベントをキャプチャすることに集中してください。たとえば、ボタンが閉じられるフレーム上にある場合は、WindowListener. ボタンがプログラムによって削除され、再検証された場合は、実行する必要があるロジックにそのコードへの呼び出しを追加します。

于 2013-10-29T15:30:54.280 に答える
1

プロパティ変更リスナーを JMenuItem コンポーネントに追加します。

propertyChange() メソッドをオーバーライドする

public void propertyChange(PropertyChangeEvent theEvt)

{

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

 {

 // Youcan remove your listener

 }

}

これを試してください...そして私に知らせてください

于 2013-10-30T13:42:39.170 に答える