2012-09-20 10 views
5

Me gustaría deshabilitar el zoom arrastrando el mouse (que pinta ese rectángulo), pero no deshabilitar el acercamiento con MouseWheel. Encontré en otro tema cómo desactivar el restablecimiento del zoom mientras arrastro el mouse hacia la izquierda (restoreAutoBounds) y estoy interesado en cómo resolver este problema. ¿Hay un pequeño atajo para hacer eso?Cómo deshabilitar el zoom con el mouse arrastrado sin deshabilitar por mousewheellistener en jfreechart?

Respuesta

3

Ok, lo he hecho, anulando MouseWheelListener. Después chartPannel.setMouseZoomable (falso) .:

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 (entrada/salida) de dominio, porque quería cambiar la escala de eje único dominio.

+0

He publicado editar. –

1

La implementación del detector de rueda del mouse en la respuesta anterior elimina la animación de zoom y no hace zoom desde la posición actual del mouse. Encontré una solución al ocultar el rectángulo con una pintura transparente:

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