Como desativar a rolagem da roda do mouse em um cabeçalho JScrollPane?
-
05-07-2019 - |
Pergunta
Eu estou trabalhando atualmente em um quadro de balanço com um JScrollPane (incluindo um JComponent), com um cabeçalho de linha e uma coluna de cabeçalho (que também são JComponents). Quando o rato é através da JComponent ou um destes 2 cabeçalhos, provoca roda rato rolagem.
O que eu quero fazer é Desativar essa rolagem quando o mouse está sobre o cabeçalho da coluna , mas não consigo encontrar uma maneira direta nem em instância JScrollPane, nem em JComponent. Para obter informações, eu tinha um olhar para essas fontes:
Agradecemos antecipadamente se você tem uma maneira de fazer isso.
Solução
Eu acho que você precisa de uma solução de 2 etapas.
-
Para ativar / desativar a roda de rolagem para todo o componente, o uso
setWheelScrollingEnabled()
naJScrollPane
. -
Para fazer isso seletiva, utilize o
addMouseListener()
no JScrollPane para pegar todos os movimentos do mouse (incluindo entrada e saída) para que você saiba quando o ponteiro está no cabeçalho. Sempre que isso muda, você pode transformar a rolagem ligado ou desligado.
Outras dicas
yourJTable.getTableHeader().setReorderingAllowed(false);
deve funcionar, experimentá-lo.