2015-12-29 3 views
0

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

JScrollBar scroll = scollpane.getVerticalScrollBar(); 
scroll.setValue(scroll.getMaximum()); 

Что-то вроде JScrollPane.setUnitIncrement(inc) со значениями МКП ~ 0,001 и задержку 10мс между шагом помогло бы, я думаю, но setUnitIncrement принимает только int с.

Кроме того, я хочу такую ​​же гладкую анимацию для добавления элемента, как JList, в JPanel с BoxLayout. Я бы хотел, чтобы у него был гладкий вид сверху вниз, а не мгновенно отображался при использовании JPanel.add(JList).

Я в основном ищет пути к реализации AurelienRibon-хSlidingLayout или Tween, но я не могу обернуть мою голову вокруг него.

+0

Возможно, что-то вроде [этого] (http://stackoverflow.com/questions/15604399/simple-way-of-creating-an-animated-jscrollpane-in-java/15605803#15605803)? – MadProgrammer

+0

Добавление временной задержки не помогает. Я не могу заставить полосу прокрутки перейти между строками. Он продвигается только по одной линии за раз. Что касается моего другого запроса, основная проблема заключается в постепенном отображении JList. Кроме того, я готов к новому java, поэтому может быть легкий выход. –

+0

Думаю, вам нужно лучше объяснить, чего именно вы хотите достичь. Связанный пример заставит панель прокрутки автоматически прокручиваться со временем – MadProgrammer

ответ

1

Сглаженные анимации (любой тип, в любой программе) выполняются с реализациями Delta-Time.

Большинство фреймворков используют Delta-Time шаблон (те, которые не делают это неправильно, потому что другие методы склонны к Time-Drifting ошибок), и трудно понять, если вы не понять концепцию Delta-Time первого.

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