1

「呼び出し元コンポーネント」を渡さずにJPopupMenuをポップアップさせると、メニューが機能しません。サブメニューが開かず、再描画されません。しかし、内部にJLabelを使用して完全に役に立たないJFrameを作成し、JLabalを呼び出し元として渡すと、正しく機能します...

任意の提案、役に立たないフレームの作成を回避する方法。そして、私のアプリケーションは実際にはフレームを開いていません。単純なメニューをポップアップするだけです。

JPopupMenu.show(null, xOnTheScreen, yOnTheScreen); // Doesn't work
JPopupMenu.show(aStupidJLabelInAStupidJFrame, x, y); // Works

ありがとう

4

1 に答える 1

1

ソース コードを見てみるJPopupMenuと、インボーカーを設定する必要がある理由がわかります。

既存のコンポーネントなしでポップアップ メニューを表示すると、ブラウザからポップアップ ウィンドウを表示するのと同じように、ユーザビリティが非常に悪くなります。

JComponent#setComponentPopupMenuポップアップメニューを表示したいコンポーネントに を使用したり、マウスリスナーを追加したりできないのはなぜですか?

于 2010-10-04T15:16:43.513 に答える