【问题标题】:How to disable zoom by mouse dragged without disabling by mousewheellistener in jfreechart?如何通过鼠标拖动禁用缩放而不通过jfreechart中的mousewheellistener禁用?
【发布时间】:2012-09-20 10:57:23
【问题描述】:

我想通过鼠标拖动禁用缩放(绘制该矩形),但不禁用通过 MouseWheel 进行缩放。我在另一个主题中找到了如何在向左拖动鼠标时禁用缩放重置(restoreAutoBounds),我对如何解决这个问题很感兴趣。有什么捷径可以做到吗?

【问题讨论】:

    标签: java jfreechart


    【解决方案1】:

    好的,我已经完成了,通过覆盖 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)Domain,因为我只想重新缩放域轴。

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 2017-12-27
        • 1970-01-01
        • 1970-01-01
        • 2023-04-07
        • 2012-01-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-12-30
        相关资源
        最近更新 更多