JScrollPaneヘッダーでマウスホイールからのスクロールを無効にする方法
-
05-07-2019 - |
質問
現在、 JScrollPane(JComponentを含む)、行ヘッダーおよび列ヘッダー(これもJComponents)を含むSWINGフレームで作業しています。マウスがJComponentまたはこれら2つのヘッダーのいずれかの上にあるとき、マウスホイールはスクロールを引き起こします。
やりたいことは、マウスが列ヘッダーの上にあるときにこのスクロールを無効にすることですが、直接的な方法も、JScrollPaneインスタンスも、JComponentも見つかりません。 詳細については、これらのソースを参照しました:
それを行う方法がある場合は、事前に感謝します。
解決
2段階のソリューションが必要だと思います。
-
コンポーネント全体のスクロールホイールを無効/有効にするには、
JScrollPane
でsetWheelScrollingEnabled()
を使用します。 -
これを選択的に行うには、JScrollPaneで
addMouseListener()
を実行して、すべてのマウスの動き(出入りを含む)をキャッチし、ポインターがヘッダー内にあることを確認します。これが変わるたびに、スクロールをオンまたはオフにできます。
他のヒント
yourJTable.getTableHeader()。setReorderingAllowed(false);
動作するはずです、試してみてください。
所属していません StackOverflow