2

スクロール可能にしようとしている階層メニューをいじっています。はい、私はJava Tips WeblogでMenu Scrollerについて知っていますが、それは私が望むことを完全に行っていないので、それを取り除いたバージョンをいじっていましたが、うまく動作しません.

基本的に、ユーザーが上下の矢印キーを押してメニューをスクロールできる、表示するアイテムが多すぎるJMenuが必要です。私は自分が望むものに驚くほど近づきましたが、次のように最もよく説明できるハードルに到達しました。

ポップアップ メニューにフォーカスがあるときに [ENTER] を押すと、デフォルトの動作では、選択した項目に関連付けられたアクションが実行され、メニューが破棄されます。メニューがネストされている場合、階層内でその上にあるポップアップも閉じます (非表示になります)。この動作はどこにコーディングされていますか? JMenu、JPopupMenu、JMenuItem、AbstractButton をすべて調べましたが、探しているものがわかりません。この一般的な動作を実行する Swing のソース コードはどこにありますか?

その答えを知っていれば、実装がうまくいかない理由がわかるかもしれません。アクションは実行できますが、メニューとその親は消えません。もちろん、setVisible(false) でメニューを非表示にすることはできますが、格納階層をたどって親メニューを見つけてそれらを非表示にすることはできません。

4

2 に答える 2

2

アクションは実行できますが、メニューとその親は消えません。

私はあなたが使用できると思います:

MenuSelectionManager.defaultManager().clearSelectedPath() 
于 2013-08-14T04:44:03.017 に答える