JMenuItem なしで JMenu (exitMenu という名前のインスタンス) を挿入したので、プログラムに JMenu オブジェクトが 1 つしかないため、不要なメニュー項目にアクセスせずにプログラムを終了する方法を利用できるようにすることを目的としています (誰かが言うかもしれません: WTF! !! しかし...)。
したがって、この特定の JMenu コンポーネントで発生したイベントをキャプチャするために、私のクラスは MenuListener インターフェイスを実装します。誰もが知っているように、必須の実装メソッドが 3 つありますが、使用する必要があるのは menuSelected() メソッドの 1 つだけです。
私のプログラムを少し直感的にするために、間違いなく、ユーザーが exitMenu を選択すると、(悪名高い) ポップアップ JOptionPane.showConfirmDialog() が、YES または NO オプションのどちらかを選択する必要がある場所に表示されます。
選択したオプションが YES の場合、プログラムは System.exit(0) によって終了するため、まったく問題ありません。問題は NO オプションです。フォーカスがプログラムに戻ったとき、exitMenu は以前に選択したので、もちろん選択されたままです。私がしたい「こと」は、NOオプションが選択された直後にオブジェクトの選択を削除することです。これにより、ユーザーはそれを再度クリックできるようになります。
3 つの必須メソッド (別の呼び出し) 内で exitMenu.setSelected(false) を使用しても、exitMenu コンポーネントは「選択解除」されていますが、イベント リスナーを呼び出すには、それを 2 回クリックする必要があります。
なにか提案を?
前もって感謝します。