`
1140566087
  • 浏览: 547696 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
博客专栏
2c4ae07c-10c2-3bb0-a106-d91fe0a10f37
c/c++ 入门笔记
浏览量:18076
3161ba8d-c410-3ef9-871c-3e48524c5263
Android 学习笔记
浏览量:309479
Group-logo
J2ME 基础学习课程集
浏览量:17993
A98a97d4-eb03-3faf-af96-c7c28f709feb
Spring 学习过程记录...
浏览量:17195
社区版块
存档分类
最新评论

Thread 多线程的使用案例-简单

    博客分类:
  • J2ME
阅读更多
import javax.microedition.lcdui.Canvas;
import javax.microedition.lcdui.Command;
import javax.microedition.lcdui.CommandListener;
import javax.microedition.lcdui.Displayable;
import javax.microedition.lcdui.Graphics;
import javax.microedition.midlet.MIDlet;

//J2ME 中的多线程
// 在MIDP 应用设计中,如果遇到了复杂设计或者需要较长时间的操作,都可以
//使用多线程;
/*
 	比如应用程序连接网络,获取数据可能需要较长时间,
 	这时可以利用多线程技术允许用户同时进行其他操作,或者设计一个动画屏幕,
 	提示正在进行连网操作,这是很重要的,
 	否则用户无从知道应用程序的工作状态。	
 *
 *
 */
//简单的线条动画
public class LineThread extends Canvas implements Runnable,CommandListener {
	// 线长度
	int lineSize = 1;
	//创建一个命令
	private Command startCommand = new Command("Start Game",Command.OK,1);
	//初始化线程
	private Thread thread;
	MIDlet midlet;

	//构造方法
	public LineThread(MIDlet midlet){
		this.midlet = midlet;
		//为当前的类 , 添加一个命令
		addCommand(startCommand);
		//添加监听器
		setCommandListener(this);
	}

	public void run() {
		// TODO Auto-generated method stub
		// 线条增长到顶点停止
		while(true){
			if(lineSize>getHeight()){
				break;
			}
			lineSize+=10;
			
			try{
				//线程暂停
				Thread.sleep(130);
				//重绘事件
				repaint();
			}catch(Exception ex){
				ex.printStackTrace();
			}
			
		}
	}
	protected void paint(Graphics g) {	
		// TODO Auto-generated method stub
//		g.setColor(255, 255, 255);
//		g.fillRect(0, 0, this.getWidth(), this.getHeight());
		//线条
		g.setColor(0xff0000);
		//g.drawLine(this.getWidth()/2, getHeight(), getWidth()/2, this.getHeight()-lineSize);
		//画三角形
		//g.fillTriangle(0, 0, 0, lineSize, lineSize, 0);  //画布遮盖

		//三角形向两侧遮盖
		//		g.fillTriangle(this.getWidth()/2, this.getHeight()/2,getWidth()/2-lineSize,getHeight()/2,getWidth()/2,getHeight()/2-lineSize );
		//		g.fillTriangle(this.getWidth()/2, this.getHeight()/2,getWidth()/2,getHeight()/2+lineSize,getWidth()/2+lineSize,getHeight()/2);

		//网格线
		g.drawLine(getWidth()/2, getHeight(), getWidth()/2, 0);
		g.drawLine(0, getHeight()/2, getWidth(), getHeight()/2);
		g.setStrokeStyle(Graphics.SOLID);  //实线


		g.setStrokeStyle(Graphics.DOTTED); //虚线
		g.drawLine(getWidth()/2-lineSize, getHeight()/2, getWidth()/2, getHeight()/2-lineSize);
		g.drawLine(getWidth()/2+lineSize, getHeight()/2, getWidth()/2, getHeight()/2-lineSize);
		g.drawLine(getWidth()/2-lineSize, getHeight()/2, getWidth()/2, getHeight()/2+lineSize);
		g.drawLine(getWidth()/2+lineSize, getHeight()/2, getWidth()/2, getHeight()/2+lineSize);
		



		//计时器
		g.setColor(0x0000ff);
		g.drawString(Long.toString(System.currentTimeMillis()), 2, 2, Graphics.TOP|Graphics.LEFT);

	}

	//根据命令的选择启动线程
	public void commandAction(Command c, Displayable d) {
		// TODO Auto-generated method stub
		if(c==startCommand){
			thread=new Thread(this);
			thread.start();
		}

	}

}
0
4
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics