ポップアップメニュートリガーを判別する

広告

ポップアップメニューはマウスの右クリックなど特定の動作を行った場合に表示させるのが一般的です。Windowsでは右クリックした時が一般的ですけどJavaではWindows環境だけで動かすわけではないのでMACやUNIX系の環境でも動作されることを考慮しておく必要があります。

そこで各プロットフォームでポップアップウィンドウを表示させるための特定の動作を行ったのかどうかを判別するメソッドを使用します。MouseEventクラスで用意されている「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 )

関連記事 (一部広告含む)