JScrollPane 中的视口 "connected to" 滚动条在哪里?

Where is the viewport "connected to" the scrollbar in JScrollPane?

我可能需要创建自己的 JScrollPane 子类。我查看了 JScrollPaneScrollPaneLayout 来源,相信我理解它是如何工作的。但是,我看不到滚动条(如果存在)在哪里 "connected to" 视口。换句话说,我希望看到视口监听滚动条以确定显示的视图坐标,但一无所获。有人会向我解释 and/or 指向执行此操作的代码吗?

我最后想检查的是 JScrollPane 上的听众。这样做使我进入 javax.swing.plaf.basic.BasicScrollPaneUI.Handler,这是所有 "wiring" 发生的地方。所以这就是原始问题的答案 - 但它指出了一个不幸的现实:如果我尝试将 JScrollPane 子类化以按我的意图工作,我似乎不太可能在不破坏 PLaF 的情况下这样做(与我目前对 PLaF 的理解)。

编辑:我发现这个 link 有助于理解 swing.plaf.*,虽然它很旧:http://www.oracle.com/technetwork/java/architecture-142923.html