Come disabilitare lo scorrimento dalla rotellina del mouse in un'intestazione JScrollPane?
-
05-07-2019 - |
Domanda
Attualmente sto lavorando a un frame SWING con un JScrollPane (incluso un JComponent), con un'intestazione di riga e un'intestazione di colonna (che sono anche JComponents). Quando il mouse si trova su JComponent o su una di queste 2 intestazioni, la rotellina del mouse provoca lo scorrimento.
Quello che voglio fare è disabilitare questo scorrimento quando il mouse si trova sopra l'intestazione della colonna , ma non riesco a trovare un modo diretto né nell'istanza di JScrollPane, né in JComponent. Per informazioni, ho dato un'occhiata a queste fonti:
Grazie in anticipo se hai un modo per farlo.
Soluzione
Penso che tu abbia bisogno di una soluzione in 2 passaggi.
-
Per disabilitare / abilitare la rotella di scorrimento per l'intero componente, utilizzare
setWheelScrollingEnabled ()
suJScrollPane
. -
Per farlo in modo selettivo, fai
addMouseListener ()
su JScrollPane per catturare tutti i movimenti del mouse (incluso entrare e uscire) in modo da sapere quando il puntatore si trova nell'intestazione. Ogni volta che questo cambia, puoi attivare o disattivare lo scorrimento.
Altri suggerimenti
yourJTable.getTableHeader () setReorderingAllowed (false);.
dovrebbe funzionare, provalo.