【发布时间】:2013-02-10 19:51:50
【问题描述】:
我通过更改JScrollPane 的水平滚动条的值制作了一个动画,类似于android OS 屏幕之间的过渡。在跑步的前几秒(最多 10 秒),如果我要求动画,它不流畅并且有跳跃;但是在我玩了一段时间之后(要求动画),它变得非常流畅。为什么会发生这种情况,更重要的是如何解决?
我并不是说我的动画的前几秒不流畅,我的意思是当我第一次启动我的程序时,我要求动画不流畅,但后来,在下一次,即流畅。
final JScrollBar br = mainContainerScrollPane.getHorizontalScrollBar();
ActionListener toTheRight = new ActionListener()
{
@Override
public void actionPerformed(ActionEvent e)
{
if (br.getValue() + 140 <= destinationScreenValue)
{
br.setValue(br.getValue() + 140);
} else
{
br.setValue(destinationScreenValue);
currentScreenName = destinationScreenName;
timer.stop();
}
}
};
timer = new Timer(10, toTheRight);
timer.setRepeats(true);
timer.setCoalesce(true);
timer.start();
【问题讨论】:
-
请向我们展示您的代码。
-
如果没有任何代码示例向我们展示您在做什么,我们将浪费彼此的时间来猜测可能出了什么问题
-
对不起,我写了我的代码,请注意用粗体写的内容
-
@trashgod 不,不相关...请再读一遍
-
这是一个常见问题。有一个古老的(好吧,可能是几个月前的)技巧——在隐藏动画的情况下运行一次动画,让所有内容都“灵活”起来。
标签: java animation timer jscrollpane