Java 在jfreechart中,如何在不禁用mousewheellistener的情况下禁用鼠标拖动的缩放?

Java 在jfreechart中,如何在不禁用mousewheellistener的情况下禁用鼠标拖动的缩放?,java,jfreechart,Java,Jfreechart,我想禁用鼠标拖动的缩放功能(绘制矩形),但不禁用鼠标滚轮的缩放功能。我在另一个主题中发现了如何在向左拖动鼠标时禁用缩放重置(restoreAutoBounds),我对如何解决这个问题感兴趣。有什么捷径可以做到这一点吗?好的,我已经通过覆盖MouseWheelListener完成了。在chartPannel.setMouseZoomable(false)之后: chartPanel.addMouseWheelListener(新的MouseWheelListener(){ 公共无效mouseWhe

我想禁用鼠标拖动的缩放功能(绘制矩形),但不禁用鼠标滚轮的缩放功能。我在另一个主题中发现了如何在向左拖动鼠标时禁用缩放重置(restoreAutoBounds),我对如何解决这个问题感兴趣。有什么捷径可以做到这一点吗?

好的,我已经通过覆盖MouseWheelListener完成了。在chartPannel.setMouseZoomable(false)之后:

chartPanel.addMouseWheelListener(新的MouseWheelListener(){
公共无效mouseWheelMoved(MouseWheelEvent arg0){
如果(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));
chartPanel.setZoomTriggerDistance(Integer.MAX_VALUE);
chartPanel.setFillZoomRectangle(false);
chartPanel.setZoomOutlinePaint(new Color(0f, 0f, 0f, 0f));