2010-05-17 53 views
3

我正在製作一個應用程序,其中有許多數據行從數據庫存根(它將成​​爲Oracle數據庫)返回,出於某種原因,滾動條停在大約第500個元素處。我想知道是否有所有的元素顯示在滾動條內。SWT ScrolledComposite切斷信息。

回答

0

您可能需要設置ScrollBar的最小值和最大值。您將分別使用setMinimum()和setMaximum()方法。

設置頁面增量也是一個好主意。這是當用戶單擊拇指和箭頭按鈕之間的區域或按下Page Up或Page Down按鈕時所選值更改的滾動線數。你會使用setPageIncrement()方法。

最後,Oracle可能會施加可從表中檢索的最大行數。我相信默認是500行。

1

我在這裏假設你使用的是Windows,因爲Windows上的滾動條存在一個相當普遍的問題:最大值是一個簡短的int 32,768。因此,如果ScrolledComposite的內部合成物的高度大於32,768像素,則合成物將被裁剪。

我還沒有找到解決這個問題的可靠方法,但有一個解決方法:將滾動條與希望滾動的組合分開。您不能創建ScrollBar,但可以製作與ScrollBar一樣寬的ScrolledComposite,然後將ScrollListener附加到ScrollListener上,並使其調整滾動組合的佈局位置。

某處我有一個片段,但我甚至不確定這個診斷是否適用於您的場景。

+0

稍微玩了一下後,我發現問題有點泛化:複合材料的最大高度是32,768。 我使用緩衝解決了我自己的問題:在任何給定時刻,只顯示一個包含信息子部分的小型組合。滾動時,緩衝區會相應更新並顯示。 (這是一項艱鉅的任務,對我的數據非常具體。) – 2010-06-04 01:05:38