scheduletest.java~10~

来自「java手机程序开发随书光盘源代码」· JAVA~10~ 代码 · 共 128 行

JAVA~10~
128
字号
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 menuCmd;
	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);
                menuCmd=new Command("menu",Command.EXIT,2);
		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(menuCmd);
		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 + =
减小字号Ctrl + -
显示快捷键?