ポップアップメニュートリガーを判別する
ポップアップメニューはマウスの右クリックなど特定の動作を行った場合に表示させるのが一般的です。Windowsでは右クリックした時が一般的ですけどJavaではWindows環境だけで動かすわけではないのでMACやUNIX系の環境でも動作されることを考慮しておく必要があります。
そこで各プロットフォームでポップアップウィンドウを表示させるための特定の動作を行ったのかどうかを判別するメソッドを使用します。MouseEventクラスで用意されている「isPopupTrigger」メソッドを使います。
public boolean isPopupTrigger()
このマウスイベントが、そのプラットフォームのポップアップメニュートリガー イベントであるかどうかを返します。 注:ポップアップメニューのトリガーはシステムによって異なります。したがっ て、共通プラットフォームを適切に機能させるために、mousePressed および mouseReleased の両方で isPopupTrigger をチェックする必要があります。 戻り値: boolean 型。イベントがこのプラットフォームの ポップアップメニュートリ ガーイベントである場合は true
マウスイベントが発生した時に「mousePressed」メソッド及び「mouseReleased」メソッドが呼び出された時に、引数として渡されてくるMouseEventクラスのオブジェクトに対して「isPopupTrigger」メソッドを使います。もし現在動作させているプロットフォームにおける特定の動作だった場合には戻り値として「true」を取得できます。
実際の使い方は次のようになります。
public void mouseReleased(MouseEvent e){ showPopup(e); } public void mousePressed(MouseEvent e){ showPopup(e); } private void showPopup(MouseEvent e){ if (e.isPopupTrigger()) { /* ポップアップメニューを表示させる */ } }
Windowsの場合には右クリックを行った場合に「isPopupTrigger」メソッドは「true」を返します。
具体的な例などは今までのサンプルを参照して下さい。
( Written by Tatsuo Ikura )
著者 / TATSUO IKURA
これから IT 関連の知識を学ばれる方を対象に、色々な言語でのプログラミング方法や関連する技術、開発環境構築などに関する解説サイトを運営しています。