2010-05-17 5 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, но вы можете сделать ScrolledComposite, который так же широк, как и ScrollBar, а затем присоединить ScrollListener к нему и настроить его положение компоновки прокрутки.

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

+0

Немного поработав с этим, я обнаружил, что проблема немного более общая: максимальная высота композита составляет 32 768. Я разрешил свою проблему с помощью буферизации: в любой момент отображается только небольшой составной текст, содержащий подраздел информации. При прокрутке буфера обновляется и отображается соответствующим образом. (Это была огромная задача и очень специфическая для моих данных.) –

Смежные вопросы