我之前已经实现拖动滚动,但什么是去有关创建无限滚动窗格中的最佳方式是什么? 当然不会有任何滚动,我将实现拖动滚动。
我所试图做的是一个无限的表面实现动态加载。
编辑
当然,它不会其实是无限的。 我问哪里可以找到答案。
我之前已经实现拖动滚动,但什么是去有关创建无限滚动窗格中的最佳方式是什么? 当然不会有任何滚动,我将实现拖动滚动。
我所试图做的是一个无限的表面实现动态加载。
编辑
当然,它不会其实是无限的。 我问哪里可以找到答案。
你可以使用JScrollPane.getViewport()
来获得JViewport
和添加ChangeListener
它。 该JViewport
当大小,或者更重要的位置已经改变会提醒你的听众。 如果位置发生了变化接近边缘JScrollPane
,那么你可以调整视口(需要无视大小触发更改事件)。
你可以做到以下几点:
AdjustmentClass adj = new AdjustmentClass();
scrollPane.getHorizontalScrollBar().addAdjustmentListener(adj);
scrollPane.getVerticalScrollBar().addAdjustmentListener(adj);
而在你AdjustmentClass做到以下几点:
public class AdjustmentClass implements AdjustmentListener {
public void adjustmentValueChanged(AdjustmentEvent adjustmentEvent) {
// Implement your custom code here
}
}
要获得事件的方向做:
adjustmentEvent.getAdjustable().getOrientation();
你会发现在方向常量:
AdjustmentEvent.UNIT_INCREMENT
AdjustmentEvent.BLOCK_INCREMENT
等等 等等
要检查用户拖动滚动条旋钮做:
adjustmentEvent.getValueIsAdjusting()
还有我数越多,检查API的更多信息,如果您需要。
编码愉快!
在一个有点延迟,我会在这里发布答案,我介绍了一个相关的问题 :
你可以做的,就是用GIMP有一个滚动区域,当您移动,可扩展的方式 - 捕捉鼠标中键的点击标记初步打算到移动视。 然后,当鼠标被拖动(按钮被点击时)由初始点击和当前位置之间的偏移量移动JScrollPane的视口。 如果我们搬到画布的边界之外,那么你应该简单地扩大画布。
当画布是滚动窗格中显示的组件。 需要注意的是移动视口时,你可能要做到以下几点: