我根据用户所需的位置和持续时间成功实现了小部件的动画。但是,如果我将两个小部件设置为移动,它们一次只能设置一个动画。当我开始将小部件 A 移动 1000 毫秒时。当它的时间为 500 毫秒时,小部件 B 应该立即开始移动另外 1000 毫秒。
我可以通过 SWT 实现这一点吗?
我根据用户所需的位置和持续时间成功实现了小部件的动画。但是,如果我将两个小部件设置为移动,它们一次只能设置一个动画。当我开始将小部件 A 移动 1000 毫秒时。当它的时间为 500 毫秒时,小部件 B 应该立即开始移动另外 1000 毫秒。
我可以通过 SWT 实现这一点吗?
怎么样:
beginMovingWidgetA();
new Thread(new Runnable() {
@Override
public void run () {
try {
Thread.sleep(500);
} catch (InterruptedException e) {
e.printStackTrace();
}
beginMovingWidgetB();
}
}).start();
(这假设至少beginMovingWidgetA
是一个异步方法。)
您基本上需要将动画任务安排为Runnable
on Display
。
您可能想查看以下现有库。
https://java.net/projects/timingframework
https://kenai.com/projects/trident/pages/Home
Trident 有很好的特性,它同时具有Swing
和SWT
实现。