简单的问题,可能是一个同样简单的答案 - 但我在文档中找不到它:
我当前的实现在JScrollPane的ScrollBars上使用MouseListener来检测用户滚动操作。但是,在MacBook上,用户还可以使用触控板(双指拖动)来修改JViewport视图的位置,而无需使用ScrollBars。我怎样才能以编程方式检测到它?
更多:有几个(未答复的)问题要求检测触控板手势的方法。似乎在“普通的旧Java”中可能无法实现。我正在寻找一种解决方案,它不关心哪个特定的用户操作导致滚动发生,而是检测到JViewport在View上的位置已经改变。当触控板手势发生时,JScrollPane以某种方式被告知执行滚动操作,所以我希望避免检测它是如何发生的(这可能在这种情况下是不可能的),而是检测用户输入发生的结果效果。
继续搜索,发现这个:Java trackpad 2-finger scroll listener表示一种方法可能是使用MouseWheelListener。那仍然是检测用户输入而不是结果,但可能是我将探索的可行选项。