java定时执行任务小结

方法一:

使用Timer和TimerTask

package za;

import java.util.Timer;
import java.util.TimerTask;

class Task extends TimerTask
{
	public void run()
	{
		System.out.println("You are my sunshine!");
	}
}
public class Mytime{    
  
	public static void main(String[] args)
	{
		Timer timer=new Timer();
		Task task=new Task();		
		timer.schedule(task, 1000,2000);	//执行任务前延时1000ms,执行后每隔2000ms执行一次	
    }
}
方法二:

使用匿名内部类,对方法一进行改进

package za;

import java.util.Timer;
import java.util.TimerTask;

public class Mytime{    
  
	public static void main(String[] args)
	{
		Timer timer=new Timer();		
		timer.schedule(new TimerTask()
		{
			public void run()
			{
				System.out.println("You are my sunshine!");
			}
		}, 1000,2000);	//执行任务前延时1000ms,执行后每隔2000ms执行一次	
    }
}

方法3:

package za;

import java.awt.event.*;
import javax.swing.*;

public class TimerTest{
	
//	private static final long serialVersionUID = 1L;
	public TimerTest()
	{
	//	this.setSize(500, 500);
	//	this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	//	this.setVisible(true);
		ActionListener taskPerformer=new ActionListener()
		{
			public void actionPerformed(ActionEvent e)
			{
				System.out.println("You are my sunshine!");
			}
		};
		Timer timer=new Timer(200, taskPerformer);
		timer.start();
	}

	public static void main(String[] args)
	{
		new TimerTest();	
	}
}
以上代码运行后没有输出结果,原因是javax.swing.Timer只能用在GUI程序中才能起作用。注意方法1和方法2使用的是java.util.Timer类。修改以上代码如下:

package za;

import java.awt.event.*;
import javax.swing.*;

public class TimerTest extends JFrame{
	
	private static final long serialVersionUID = 1L;
	public TimerTest()
	{
	//	this.setSize(500, 500);
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	//	this.setVisible(true);
		ActionListener taskPerformer=new ActionListener()
		{
			public void actionPerformed(ActionEvent e)
			{
				System.out.println("You are my sunshine!");
			}
		};
		Timer timer=new Timer(200, taskPerformer);
		timer.start();
	}

	public static void main(String[] args)
	{
		new TimerTest();	
	}
}







评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值