Как отключить прокрутку с помощью колеса мыши в заголовке JScrollPane?

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

  •  05-07-2019
  •  | 
  •  

Вопрос

В настоящее время я работаю над рамой SWING с JScrollPane (включая JComponent) с заголовком строки и заголовком столбца. (которые также являются JComponents).Когда указатель мыши находится над JComponent или одним из этих двух заголовков, колесо мыши вызывает прокрутку.

Что я хочу сделать, так это отключить эту прокрутку, когда мышь находится над заголовком столбца, но я не могу найти прямого пути ни в экземпляре JScrollPane, ни в JComponent.Для информации я посмотрел эти источники:

Заранее благодарю, если у вас есть способ сделать это.

Это было полезно?

Решение

Я думаю, вам нужно двухэтапное решение.

  • Чтобы отключить/включить колесо прокрутки для всего компонента, используйте setWheelScrollingEnabled() на JScrollPane.

  • Чтобы сделать это выборочно, выполните addMouseListener() на JScrollPane, чтобы отслеживать все движения мыши (включая вход и выход), чтобы вы знали, когда указатель находится в заголовке.Всякий раз, когда это меняется, вы можете включить или выключить прокрутку.

Другие советы

yourJTable.getTableHeader().setReorderingAllowed(false);

должно сработать, попробуйте.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top