Come disabilitare lo scorrimento dalla rotellina del mouse in un'intestazione JScrollPane?

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

  •  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.

È stato utile?

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 () su JScrollPane.

  • 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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top