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