SWT ScrolledComposite切断信息。

时间:2010-05-17 19:05:30

标签: java scroll swt composite

我正在创建一个应用程序,其中有许多数据行从数据库存根(将成为Oracle数据库)返回,并且由于某种原因滚动条停在大约第500个元素处。我想知道是否还要在滚动条中显示所有元素。

2 个答案:

答案 0 :(得分:1)

我在这里假设你使用的是Windows,因为Windows上的滚动条存在一个相当普遍的问题:最大值是一个短的int,32,768。因此,如果ScrolledComposite的内部合成的高度大于32,768像素,则合成将被剪裁。

我还没有找到一种强大的方法来解决这个问题,但是有一种解决方法:将滚动条与要滚动的复合滚动分开。您不能创建ScrollBar,但是您可以创建一个与ScrollBar一样宽的ScrolledComposite,然后将ScrollListener附加到它并让它调整滚动合成的布局位置。

某个地方我有一个片段,但我甚至不确定这个诊断是否适用于你的场景。

答案 1 :(得分:0)

您可能需要设置ScrollBar的最小值和最大值。您将分别使用setMinimum()和setMaximum()方法。

设置页面增量也是个好主意。这是当用户单击拇指按钮和箭头按钮之间的区域时所选值更改的滚动行数,或者按Page Up或Page Down按钮。您将使用setPageIncrement()方法。

最后,Oracle可能会强制您从表中检索的最大行数。我相信默认值是500行。