我有一个相当简单的问题,我没有在任何地方看到适当的答
我正在使用java.awt设计一个Java applet.我想要做的是让Java在执行简单图形动画的方法中执行代码的不同部分之间等待几秒钟.
所以它是这样的:
runAnimation() {
// draw red shapes
// wait 2 seconds so the shapes remain visible
// set color of shapes to green and repaint
}
Run Code Online (Sandbox Code Playgroud)
如其他地方所建议的,如果我使用类似的东西
try {
// do first task
Thread.sleep(2000);
// do second task
} catch (InterruptedException e) {
}
Run Code Online (Sandbox Code Playgroud)
程序只显示等待2秒后第二个任务的结果,即我从未看到红色形状.我希望看到红色形状两秒钟,然后将它们设置为蓝色等等.
您没有说明您使用的GUI /图形库是哪些关键信息.如果是Swing或AWT,那么使用Swing Timer进行暂停.你不应该使用Thread.sleep(...)
这个,因为你将GUI的事件线程置于睡眠状态,导致整个应用程序冻结.
例如,
someColor = Color.RED;
int delay = 2000;
repaint()
Timer swingTimer = new Timer(delay, new ActionListener() {
public void actionPerformed(ActionEvent e) {
someColor = Color.GREEN;
repaint();
}
});
swingTimer.setRepeats(false);
swingTimer.start();
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1131 次 |
最近记录: |