2012-09-20 16 views
5

मैं माउस ड्रैगिंग (जो आयत को चित्रित करता है) द्वारा ज़ूमिंग को अक्षम करना चाहता हूं, लेकिन माउसहेल द्वारा ज़ूमिंग अक्षम नहीं करता है। मुझे एक और विषय में पाया गया कि माउस को बाईं ओर खींचने के दौरान ज़ूम रीसेट को कैसे अक्षम करें (restoreAutoBounds) और मुझे इस समस्या को हल करने में रुचि है। क्या ऐसा करने के लिए थोड़ा शॉर्टकट है?jfreechart में mousewheellistener द्वारा अक्षम किए बिना माउस द्वारा ज़ूम किए गए ज़ूम को कैसे अक्षम करें?

उत्तर

3

ठीक है, मैंने माउसहेल लिस्टनर को ओवरराइड करके इसे किया है। chartPannel.setMouseZoomable (गलत) के बाद .:

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); 
      } 
     } 
    }); 

जूम (/ आउट में) डोमेन, क्योंकि मैं केवल डोमेन अक्ष rescale करना चाहता था।

+0

मैंने संपादन पोस्ट किया है। –

1

पिछले जवाब में माउस व्हील श्रोता कार्यान्वयन ज़ूम एनीमेशन को हटा देता है और वर्तमान माउस स्थिति से ज़ूम नहीं करता है। मुझे एक पारदर्शी पेंट का उपयोग करके आयत को छिपाने के द्वारा एक कामकाज मिला:

chartPanel.setZoomTriggerDistance(Integer.MAX_VALUE); 
chartPanel.setFillZoomRectangle(false); 
chartPanel.setZoomOutlinePaint(new Color(0f, 0f, 0f, 0f)); 
संबंधित मुद्दे