JPopupMenuを開いた状態で別コンポーネントをクリックした場合のイベントを実行するかを切り替える
Total: 2862, Today: 1, Yesterday: 0
Posted by aterai at
Last-modified:
Summary
JPopupMenuを閉じるイベントが別コンポーネントをクリックすることで発生したとき、コンポーネントのクリックイベントを実行するかどうかを切り替えます。
Screenshot

Advertisement
Source Code Examples
Description
PopupMenu.consumeEventOnClose:trueJPopupMenuを閉じるイベントが別コンポーネントをクリックすることで発生したとき、コンポーネントのクリックイベントを実行しないWindowsLookAndFeelやNimbusLookAndFeelのデフォルト- 例:
JPopupMenuを開いた状態でBeepボタンをクリックしてもBeep音は鳴らないJPopupMenuを開いた状態でJTextFieldをクリックしてもフォーカスは移動しないJToolBarを分離して別ウィンドウでJPopupMenu開いた状態でも、この動作は変わらないJComboBoxは例外で、ドロップダウンリストが開きコンボエディタにフォーカスも移動するJComboBoxのドロップダウンリストを開いた状態でBeepボタンをクリックしてもBeep音は鳴らない- 参考: JPopupMenuを開く前に対象となるJTextFieldにFocusを移動する
PopupMenu.consumeEventOnClose:falseJPopupMenuを閉じるイベントが別コンポーネントをクリックすることで発生したとき、コンポーネントのクリックイベントを実行するMetalLookAndFeelのデフォルト- 例:
JPopupMenuを開いた状態でBeepボタンをクリックするとBeep音が鳴るJPopupMenuを開いた状態でJComboBoxのコンボエディタをクリックしてもJPopupMenuは表示状態を維持するJToolBarを分離し別ウィンドウでJPopupMenu開いた状態の場合、JComboBoxのコンボエディタをクリックするとフォーカスが移動してJPopupMenuは非表示になる
Reference
- java - Changing nimbus JPopupmenu behaviour - Stack Overflow
- JDK-6770445 Unable to transfer focus with single click when the combobox popup is visible - Java Bug System
- JToggleButtonからポップアップメニューを開く