⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 scheduletest.java~6~

📁 java教程第七章事例
💻 JAVA~6~
字号:
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
import javax.microedition.lcdui.List;
import java.util.*;

public class ScheduleTest extends MIDlet implements CommandListener{

	Display display;
	List list;
	Command exitCmd;
	Command deleteTimerCmd;
	Command deleteTimerTaskCmd;
	Timer oneTimeTimer;
	Timer fixedDelayTimer;
	Timer fixedRateTimer;
	MyTimerTask oneTimeTask;
	MyTimerTask fixedDelayTask;
	MyTimerTask fixedRateTask;
	int oneTimeValue, fixedDelayValue, fixedRateValue;

	static final int ONE_TIME = 0;
	static final int FIXED_DELAY = 1;
	static final int FIXED_RATE = 2;

	public ScheduleTest(){
		list = new List("调度方式",List.IMPLICIT);
		exitCmd = new Command("退出",Command.EXIT,1);
		deleteTimerCmd = new Command("取消Timer",Command.SCREEN,1);
		deleteTimerTaskCmd = new Command("取消TimerTask",Command.SCREEN,2);

		list.append("One time:"+oneTimeValue,null);
		list.append("Fixed delay:"+fixedDelayValue,null);
		list.append("Fixed rate:"+fixedRateValue,null);
		list.setCommandListener(this);
		list.addCommand(exitCmd);
		list.addCommand(deleteTimerCmd);
		list.addCommand(deleteTimerTaskCmd);

		oneTimeTimer = new Timer();
		fixedDelayTimer = new Timer();
		fixedRateTimer = new Timer();
		oneTimeTask = new MyTimerTask(ONE_TIME);
		fixedDelayTask = new MyTimerTask(FIXED_DELAY);
		fixedRateTask = new MyTimerTask(FIXED_RATE);
	}

	public void startApp(){
		oneTimeTimer.schedule(oneTimeTask, 1000);
		fixedDelayTimer.schedule(fixedDelayTask, 1000, 1000);
		fixedRateTimer.scheduleAtFixedRate(fixedRateTask, 1000, 1000);
		display = Display.getDisplay(this);
		display.setCurrent(list);
	}

	public void pauseApp(){
	}

	public void destroyApp(boolean unconditional){
	}

	public void commandAction(Command c, Displayable d){

		if(c == deleteTimerCmd){
			switch(list.getSelectedIndex()){
				case 0:
					oneTimeTimer.cancel();
				break;
				case 1:
					fixedDelayTimer.cancel();
				break;
				case 2:
					fixedRateTimer.cancel();
				break;
			}
		}
		else if(c == deleteTimerTaskCmd){
			switch(list.getSelectedIndex()){
				case 0:
					oneTimeTask.cancel();
				break;
				case 1:
					fixedDelayTask.cancel();
				break;
				case 2:
					fixedRateTask.cancel();
				break;
			}
		}
		else if(c == exitCmd){
			destroyApp(false);
			notifyDestroyed();
		}
	}

	class MyTimerTask extends TimerTask{

		int type;

		public MyTimerTask(int type){
			this.type = type;
		}

		public void run(){
			int i = 0;
			while(i<100000){
				i++;
			}
			switch(type){
				case ONE_TIME:
					oneTimeValue++;
					list.set(0, "One time:"+oneTimeValue,null);
				break;
				case FIXED_DELAY:
					fixedDelayValue++;
					list.set(1, "Fixed delay:"+fixedDelayValue,null);
				break;
				case FIXED_RATE:
					fixedRateValue++;
					list.set(2, "Fixed rate:"+fixedRateValue,null);
				break;
			}
		}
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -