这是我第一次来这里,如果我犯了任何错误,请告诉我!
所以,我有一个treetable(一些修改版本,因为我需要aephyr - http://code.google.com/p/aephyr/),最终会有数十万行 - 实际上,因为该表用于接收消息,所以它永远不会结束。因此,我必须设法将信息保存在磁盘上,并且只在用户想要查看时加载它。我在表的根目录中保留最多100个子节点,并通过在表的开头或结尾单击两个特殊节点来向上或向下加载一些节点。显然,这不是用户友好的,如果你在节点10中,并且想要滚动到2000,那就太烦人了。
为了更容易使用,我想要一个滚动条,它的位置会告诉我必须加载哪些节点。问题是,我的表JScrollPane中的默认滚动条似乎只有100个节点,无论我为getRowCount()返回什么。我设法创建了另一个看起来应该的JScrollBar,并使其滚动到我想要的位置,但由于没有绑定到表格或滚动窗格,它不会响应滚动视口或鼠标滚轮。 / p>
然而,我的问题是:任何人都知道如何让原始JScrollPane的滚动条看起来像我想要的那样,所以我不必重新发明轮子来响应表,视口和滚动中的所有可能事件酒吧??
如果需要,我可以尝试制作一些示例代码,但这需要一些时间,我现在没有的东西= \
提前提醒!
[编辑]
我用我的问题创建了一个示例代码......不是很好,但我认为这足以让你明白我的问题是什么...... 我在Eclipse中有Aephyr项目,并在其中创建了一个新的“LazyTableTest”包...包的源代码在这个zip文件中: https://docs.google.com/file/d/0B4Ti8_BMZvD2b2dtY05GWkxFVGs/edit?usp=sharingt
运行DemoTable - 它将创建一个包含2000个条目的文件,并将它们显示在一个表中(初始化对于文件创建来说有点慢......)。该框架包含两个滚动条: - internal是表的默认值(对于100个节点) - 外部是我自己的。当直接移动旋钮时,它按预期工作(+一些错误)。当动作来自方向盘或视口时,什么都不会发生 - 我没有为此设置任何东西,并且,如前所述,不想重新发明轮子...所以,我尝试使用我的滚动设置VerticalScrollBar bar,但它不再起作用(取消注释DemoTable.java中的第528行)。
想法?!