如何在 jfreechart 中禁用鼠标拖动鼠标缩放而不禁用鼠标滚轮侦听器



我想通过鼠标拖动(绘制该矩形)禁用缩放,但不禁用鼠标滚轮缩放。我在另一个主题中找到了如何在向左拖动鼠标时禁用缩放重置(恢复自动边界),我对如何解决此问题感兴趣。有没有一点捷径可以做到这一点?

好的,我已经做到了,通过覆盖 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);
            }
        }
    });

zoom(In/Out)域,因为我只想重新缩放域轴。

上一个答案中的鼠标滚轮侦听器实现删除了缩放动画,并且不会从当前鼠标位置缩放。我通过使用透明油漆隐藏矩形找到了解决方法:

chartPanel.setZoomTriggerDistance(Integer.MAX_VALUE);
chartPanel.setFillZoomRectangle(false);
chartPanel.setZoomOutlinePaint(new Color(0f, 0f, 0f, 0f));

最新更新