¿Cómo deshabilitar el desplazamiento desde la rueda del mouse en un encabezado JScrollPane?
-
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.
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 elJScrollPane
. -
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.