簡體   English   中英

如何在jfreechart中通過鼠標拖動禁用縮放而不用mousewheellistener禁用縮放?

[英]How to disable zoom by mouse dragged without disabling by mousewheellistener in jfreechart?

我想通過鼠標拖動禁用縮放(繪制該矩形),但不希望通過MouseWheel禁用縮放。 我在另一個主題中找到了如何在向左拖動鼠標(restoreAutoBounds)時禁用縮放重置,並且我對如何解決此問題感興趣。 有一些捷徑可以做到嗎?

好的,我通過重寫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,因為我只想重新縮放域軸。

上一個答案中的鼠標輪監聽器實現會刪除縮放動畫,並且不會從當前鼠標位置縮放。 我通過使用透明塗料隱藏矩形來找到一種解決方法:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM