我正在尝试更改鼠标按钮以将地图视图从右键向左平移。
单击鼠标左键后,有一个简单的代码更改按钮:
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);
}
观察到以下行为:
单击鼠标左键。拖动时没有进行重新分配(相同的情况)。
松开鼠标左键。
再次单击鼠标左键。拖动时,平移分配给鼠标左键。
我觉得这种行为很奇怪。也许,我错误地使用了这种方法......
如何直接更改平移按钮,而不被释放并再次单击?谢谢你的帮助...