1

マップ ビューを右ボタンから左ボタンにパンするようにマウス ボタンを変更しようとしています。

マウスの左ボタンがクリックされた後にボタンを変更する簡単なコードがあります。

public class Map extends JMapViewer {

    public Map()         {
            new DefaultMapController(this){
                    public void mousePressed(MouseEvent e) {                   
                            this.setMovementMouseButton(MouseEvent.BUTTON1);
                    }   
            };
    }
}

メインクラス:

public class JMapViewerDemo {
    public static void main(String[] args) {
           JFrame f = new JFrame();
           f.add(new Map());
           f.setSize(800, 600);
           f.setVisible(true);          
           f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }
}

驚いたことに、コードは機能しません (再割り当ては行われていません)。なんで?ただし、親クラスのメソッドを呼び出した後

public void mousePressed(MouseEvent e) {    
     super.mousePressed(e);      //Calling the parent-class method          
     this.setMovementMouseButton(MouseEvent.BUTTON1);
}   

次の動作が観察されました。

  1. マウスの左ボタンをクリックします。ドラッグしても再割り当ては行われません (同じ状況)。

  2. マウスの左ボタンを離します。

  3. もう一度マウスの左ボタンをクリックします。ドラッグすると、パンがマウスの左ボタンに割り当てられます。

この振る舞いは奇妙だと思います。たぶん、私はこの方法を間違って使用しています...

離してもう一度クリックせずに、パンボタンを直接変更する方法は? ご協力いただきありがとうございます...

4

1 に答える 1