我意识到还有另一个与“无限”JScrollPanes 相关的问题,但是我认为我正在寻找的是一些微妙不同的东西。
基本上,我有一组可以向任何方向拖动的对象,并且滚动视口的范围应始终包含所有这些对象的边界矩形。换句话说,文档没有固定的“来源”。因此,如果您将一个对象拖到左侧,离开屏幕边缘,那么视口范围应该在负方向扩展以包含该对象的新位置。(它也应该在您拖动时自动滚动,但我意识到这是一个单独的问题。)
我不确定如何使用 JScrollPane API 来执行此操作,它似乎希望您设置底层组件的首选大小,但似乎没有该组件的偏移量或原点的概念。(底层的 JViewport 似乎可以做到,但我无法真正弄清楚 JViewport API。)