• ベストアンサー

アプレットのPopupMenuをコードだけで消す方法

こんにちわ。yukimura1024です。 アプレットの、ある範囲にマウスカーソルが入ったらPopupMenuを表示する。その範囲からマウスカーソルが出たらPopupMenuを消す。という処理を作成しています。表示のほうはできますが、消すほうがうまくいきません。(PopupMenuではなくLabelならsetVisibleを使って消すことができました) どこかをクリックするかESCキーを押せばPopupMenuは消えるのですが、これをマウスの移動だけで行いたいのです。 いろいろと試しましたがなかなかうまくいきません・・・ ご存知の方、教えていたたければ幸いです。 よろしくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • chachax
  • ベストアンサー率100% (1/1)
回答No.2

自信なし PopupMenuは表示されたMenuの中から1つを選択しなければならいのではと考えます。(何らかの応答を必要としているにでは、dialogのmodalのように) menuの1つに閉じるを加えたら。 マウスの移動だけで表示/非表示を行うのならTooltipが相応しいのでは、更にmenuとしての機能を使用したいのであれば、カーソルの位置を入手し、該当する単語をtooptipの文字列から検索、識別する。 なお、カーソル位置の入手にの可否については、申し訳ありませんが知りません。 処理のイメージとして、書かせてもらいました。

yukimura1024
質問者

お礼

AWTなのでツールチップは使えませんでした(TT 結局自前でツールチップっぽい絵を描画することになりました。回答していただいてありがとうございました(^^

その他の回答 (1)

  • ngsvx
  • ベストアンサー率49% (157/315)
回答No.1

自信なしです。 表示の時には、何らかのコンテナに追加していると思います。 消去は、そのコンテナから削除したらどうでしょうか。

yukimura1024
質問者

補足

返答ありがとうございます。 アプレットは経験がなく苦戦していますが 表示したいタイミングで add(pop); としているので、消したいタイミングで remove(pop); と書いて試してみましたが消えません。 ESCキーを押しても消えるので、「ESCキーが押されたことにする」というコードを書いても出来そうなのですが、書き方が分かりません。。。 これについてはやり方をご存知でしょうか?

関連するQ&A