我有一个使用Netbeans的应用程序,我不知道如何在Java中使用Timer
。在Winform中有一个Timer
的控制框,只能拖动和使用。现在我想在about.setIcon(about4);
(即GIF)执行后使用计时器1秒钟。
import javax.swing.ImageIcon;
int a2 = 0, a3 = 1, a4 = 2;
ImageIcon about2 = new ImageIcon(getClass().getResource("/2What-is-the-Game.gif"));
about2.getImage().flush();
ImageIcon about3 = new ImageIcon(getClass().getResource("/3How-to-play.gif"));
about3.getImage().flush();
ImageIcon about4 = new ImageIcon(getClass().getResource("/4About-end.gif"));
about4.getImage().flush();
if(a2 == 0)
{
a2=1;
a3=1;
about.setIcon(about2);
}
else if (a3 == 1)
{
a3=0;
a4=1;
about.setIcon(about3);
}
else if (a4 == 1)
{
a4=0;
a2=0;
about.setIcon(about4);
}
}
我怎样才能做到这一点?
答案 0 :(得分:1)
在Java中,我们有几种Timer实现方式,或者更确切地说是它的用途,其中一些是 -
Timer类为线程提供工具,以便在后台线程中安排将来执行的任务。可以将任务安排为一次性执行,或者以固定间隔重复执行。
public class JavaReminder {
Timer timer;
public JavaReminder(int seconds) {
timer = new Timer(); //At this line a new Thread will be created
timer.schedule(new RemindTask(), seconds*1000); //delay in milliseconds
}
class RemindTask extends TimerTask {
@Override
public void run() {
System.out.println("ReminderTask is completed by Java timer");
timer.cancel(); //Not necessary because we call System.exit
//System.exit(0); //Stops the AWT thread (and everything else)
}
}
public static void main(String args[]) {
System.out.println("Java timer is about to start");
JavaReminder reminderBeep = new JavaReminder(5);
System.out.println("Remindertask is scheduled with Java timer.");
}
}
从这里阅读更多内容:
答案 1 :(得分:0)
在代码中(在构造函数中?)声明java.util.Timer
的实例,并使用docs中的方法配置/控制它。
import java.util.Timer;
import java.util.TimerTask;
...
private Timer t;
public class MyClass()
{
t=new Timer(new TimerTask(){
@Override
public void run()
{
//Code to run when timer ticks.
}
},1000);//Run in 1000ms
}