私はJavaアプリケーションを開発しており、動的JMenuを手動で作成しています(入力データによって異なります)。メニューの各メニュー項目に同じアクションを追加します。問題は、というメニュー項目に応じて、毎回異なるアクションを実行したいということです。これを行う簡単な方法はありますか(各JMenuItemのsetData(Object data)のようなもの、またはJMenuItemから派生するように強制されます)?
前もって感謝します、
イウリアン
私はJavaアプリケーションを開発しており、動的JMenuを手動で作成しています(入力データによって異なります)。メニューの各メニュー項目に同じアクションを追加します。問題は、というメニュー項目に応じて、毎回異なるアクションを実行したいということです。これを行う簡単な方法はありますか(各JMenuItemのsetData(Object data)のようなもの、またはJMenuItemから派生するように強制されます)?
前もって感謝します、
イウリアン
ActionのactionPerformedメソッドでActionEvent.getSourceを使用できると思います。イベントのソースをJMenuItemのソースと比較します。
追加情報を保存するには、putClientPropertyを使用するか、JMenuItemを拡張します。
最初の質問と意見によると、Julianは、文字列と関連するアクションで構築されたJMenuItemを、テキストと関連する動作の両方を提供するアクションのみで構築されたJMenuItemに置き換えることをお勧めします。このアクションは、アプリケーションから他の要素を参照して、必要な動作を提供することができます。