我希望禁用鼠标拖动缩放功能(绘制矩形),但不禁用鼠标滚轮缩放功能。我在另一个主题中发现如何在向左拖动鼠标时禁用缩放重置(还原自动边界),并且我对如何解决此问题很感兴趣。有没有一种简单的方法来解决这个问题?
我希望禁用鼠标拖动缩放功能(绘制矩形),但不禁用鼠标滚轮缩放功能。我在另一个主题中发现如何在向左拖动鼠标时禁用缩放重置(还原自动边界),并且我对如何解决此问题很感兴趣。有没有一种简单的方法来解决这个问题?
好的,我已经完成了它,通过覆盖MouseWheelListener。在chartPannel.setMouseZoomable(false)之后:
chartPanel.addMouseWheelListener(new MouseWheelListener() {
public void mouseWheelMoved(MouseWheelEvent arg0) {
if (arg0.getWheelRotation() > 0) {
chartPanel.zoomOutDomain(0.5, 0.5);
} else if (arg0.getWheelRotation() < 0) {
chartPanel.zoomInDomain(1.5, 1.5);
}
}
});
在上一个回答中,鼠标滚轮监听器实现移除了缩放动画,并且不会从当前鼠标位置进行缩放。我找到了一种解决方法,通过使用透明绘画隐藏矩形:
chartPanel.setZoomTriggerDistance(Integer.MAX_VALUE);
chartPanel.setFillZoomRectangle(false);
chartPanel.setZoomOutlinePaint(new Color(0f, 0f, 0f, 0f));