JScrollPaneヘッダーでマウスホイールからのスクロールを無効にする方法

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

  •  05-07-2019
  •  | 
  •  

質問

現在、 JScrollPane(JComponentを含む)、行ヘッダーおよび列ヘッダー(これもJComponents)を含むSWINGフレームで作業しています。マウスがJComponentまたはこれら2つのヘッダーのいずれかの上にあるとき、マウスホイールはスクロールを引き起こします。

やりたいことは、マウスが列ヘッダーの上にあるときにこのスクロールを無効にすることですが、直接的な方法も、JScrollPaneインスタンスも、JComponentも見つかりません。 詳細については、これらのソースを参照しました:

それを行う方法がある場合は、事前に感謝します。

役に立ちましたか?

解決

2段階のソリューションが必要だと思います。

  • コンポーネント全体のスクロールホイールを無効/有効にするには、 JScrollPane setWheelScrollingEnabled()を使用します。

  • これを選択的に行うには、JScrollPaneで addMouseListener()を実行して、すべてのマウスの動き(出入りを含む)をキャッチし、ポインターがヘッダー内にあることを確認します。これが変わるたびに、スクロールをオンまたはオフにできます。

他のヒント

yourJTable.getTableHeader()。setReorderingAllowed(false);

動作するはずです、試してみてください。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top