¿Cómo deshabilitar el desplazamiento desde la rueda del mouse en un encabezado JScrollPane?

StackOverflow https://stackoverflow.com/questions/1803375

  •  05-07-2019
  •  | 
  •  

Pregunta

Actualmente estoy trabajando en un marco SWING con un JScrollPane (incluido un JComponent), con un encabezado de fila y un encabezado de columna (que también son JComponents). Cuando el mouse se encuentra sobre el JComponent o uno de estos 2 encabezados, la rueda del mouse provoca el desplazamiento.

Lo que quiero hacer es deshabilitar este desplazamiento cuando el mouse está sobre el encabezado de la columna , pero no puedo encontrar una forma directa ni en la instancia de JScrollPane, ni en JComponent. Para obtener información, eché un vistazo a estas fuentes:

Gracias de antemano si tiene una manera de hacerlo.

¿Fue útil?

Solución

Creo que necesita una solución de 2 pasos.

  • Para deshabilitar / habilitar la rueda de desplazamiento para el componente completo, use setWheelScrollingEnabled () en el JScrollPane.

  • Para hacer esto de forma selectiva, haga addMouseListener () en JScrollPane para capturar todo el movimiento del mouse (incluidas las entradas y las salidas) para saber cuándo el puntero está en el encabezado. Siempre que esto cambie, puede activar o desactivar el desplazamiento.

Otros consejos

yourJTable.getTableHeader().setReorderingAllowed(false);

debería funcionar, pruébalo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top