我正在尝试调整以下示例:http ://docs.oracle.com/javase/tutorial/uiswing/examples/zipfiles/components-ScrollDemoProject.zip
我想做的目的是允许用户在图片上导航到他们自己选择的坐标(但不是通过鼠标)。所以你有一张大图片,只有一小部分显示,图片上的这个窗口移动。这在使用鼠标时有效(参见 oracle 的示例)。但我想用用户选择的坐标来做到这一点。
在ScrollablePicture类中可以看到可以通过鼠标拖动来移动图片:
public void mouseDragged(MouseEvent e) {
Rectangle r = new Rectangle(e.getX(), e.getY(), 1, 1);
scrollRectToVisible(r);
}
我试着做同样的事情,所以我在 mouseDragged 函数下面添加了这个方法:
public void moveMap(float X, float Y){
Rectangle r = new Rectangle((int)X,(int) Y, 1, 1);
System.err.println("Scroll to "+ r.x);
scrollRectToVisible(r);
}
当我查看我的输出时,我可以看到我在方法中获得了坐标。但窗口不滚动。我现在的问题是:为什么它不滚动,我该如何解决这个问题?
ps:和价值观无关。因为我在这两个函数中都尝试了固定数字,例如:
Rectangle r = new Rectangle(2000,2000, 1, 1);
它在 mouseDragged 函数中有效,但在 moveMap 函数中无效