2009-06-16 1 views
4

На прокручивающихся списках iPhone анимируется плавно. Игнорирование эффекта инерции (хотя и было бы здорово) - как бы я мог сделать так, чтобы свинг-свинг прокручивался так гладко?Как сделать гладкую прокрутку списков в Swing

Есть и другие примеры, такие как браузеры, но они используют собственные элементы управления, которые я не могу использовать с Swing.

ответ

4

Если вы используете JList, попробуйте переписать getScrollableUnitIncrement(Rectangle, int, int) и getScrollableBlockIncrement(Rectangle, int, int), чтобы вернуть пользовательский приращение. 2 пикселя вместо значений по умолчанию, вычисленных из высоты входа в список.

3

Я не уверен, что это отвечает на ваш вопрос, но у меня была аналогичная проблема. Моя проблема заключалась в том, что перетаскивание вертикальной ручки JScrollPane заставляло JList прокручиваться блоками, а не единицами, то есть верхняя ячейка всегда отображалась целиком, за исключением того, что список был прокручен до нижней.

Любопытно, что это произошло только при использовании внешнего вида Windows. При использовании по умолчанию L & F Я получил поведение, которое я хотел. И после большого рытья я обнаружил this post, который показал, что для этого есть свойство L & F. По умолчанию это верно для Windows L & F, но вы можете установить его как false:

UIManager.put("List.lockToPositionOnScroll", Boolean.FALSE);