SWT ScrolledComposite обрезает информацию. - PullRequest
3 голосов
/ 17 мая 2010

Я создаю приложение, в котором есть много строк данных, возвращаемых из заглушки базы данных (которая станет базой данных Oracle), и по какой-то причине полоса прокрутки останавливается примерно на 500-м элементе. Мне интересно, есть ли все элементы, отображаемые в пределах полосы прокрутки?

Ответы [ 2 ]

1 голос
/ 21 мая 2010

Я предполагаю, что вы используете Windows, потому что в Windows существует довольно общая проблема с полосами прокрутки: максимальное значение - short int, 32 768. Следовательно, если высота внутреннего компоновщика объекта ScrolledComposite превышает 32 768 пикселей, он будет обрезан.

Я не нашел надежного способа исправить это, но есть обходной путь: отделите полосу прокрутки от композита, который вы хотите прокрутить. Вы не можете создать ScrollBar, но вы можете создать ScrolledComposite точно такой же ширины, как ScrollBar, затем прикрепить к нему ScrollListener и настроить его положение компоновки прокрутки.

Где-то у меня есть фрагмент, но я даже не совсем уверен, применим ли этот диагноз к вашему сценарию.

0 голосов
/ 17 мая 2010

Может потребоваться установить минимальное и максимальное значения полосы прокрутки. Вы должны использовать методы setMinimum () и setMaximum () соответственно.

Также неплохо установить приращение страницы. Это количество линий прокрутки, на которое изменяется выбранное значение, когда пользователь щелкает область между большим пальцем и кнопками со стрелками или нажимает кнопки Page Up или Page Down. Вы бы использовали метод setPageIncrement ().

Наконец, Oracle может навязать максимальное количество строк, которое вы можете извлечь из таблицы. Я считаю, что по умолчанию 500 строк.

...