网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > Java
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
本月文章推荐
.JBuilder Editor中光标不能正确定.
.一个JAVABean的小例子.
.maven的安装和使用.
.详细解析 JavaBeans 与 Ejb 的区.
.第一个JNI程序--HelloNative.
.Sun认证Java程序员5.0升级版本.
.学习java安全技术前的准备.
.MVC 构架学习之渐行渐进(三).
.J2SE综合-关于字符串的一些处理.
.新手宝典 J2EE专家起步图解.
.常用巧门和技巧.
.Java伴侣.
.一个简单的表达式求值类,java.
.幸福的联姻:Java和Python.
.用Apache Torque项目来提升Java程.
.如何用开源软件构建 java 编程环.
.关于2006的技术预言.
.实现真正的J2EE便携式应用.
.关于Java栈与堆的思考.
.用Javamail写的解析MimeMessage的.

《Java 手机/PDA 程序设计入门》读书笔记8--LCDAUI低级API之 线程 时间控制

发表日期:2008-1-5



利用Thread解决paint()和用户输入响应同时将进行的问题。

public class Mycanvas extends Canvas implements Runnable{ int r=0; public Mycanvas() {  Thread t=new Thread(this);  t.start(); } public void run() {  while(true)  {   r++;   if(r>10)    r=0;   repaint();  } } public void paint(Graphics g) {  clear(g);  paintAnimation(g,100,10,r); } protected void keyPressed(int keycode) {  switch(getGameAction(keycode))  {   case Canvas.UP:    y=y-2;    break;   ……  } }}

j2me已将stop()方法拿掉(j2se也不再提倡使用),我们利用标识(flag)来解决线程结束的问题boolean conti=false;……if(cmd.equals("停止")){ conti=false; removeCommand(stop); addCommand(start);}else if(cmd.equals("开始")){ removeCommand(start); addCommand(stop); conti=true; Thread t=new Thread(this); t.start();}……public void run(){ while(conti) {  r++;  if(r>10)   r=0;  repaint(); }}

时间控制不同机器处理速度不同,为了保持游戏,画面的一致性,通过时间控制流程来解决……int rate=50(50毫秒=1/20秒 画面重绘一次)public void run(){ long s1=0; long s2=0; long diff=0; while(conti) {  s1=Systen.currentTimeMillis();  repaint();  serviceRepaints();  s2=Systen.currentTimeMillis();  diff=s2-s1;  System.out.rpintln(diff);  if(diff<rate)  {   try   {    Thread.sleep(rate-diff);   }catch(Exception exc){}  }  repaint(); }}
上一篇:《Java编程思想》(第二版)第07章:多态(polymorphism) 人气:510
下一篇:《Java编程思想》(第二版)第6:重复运用classes 人气:459
浏览全部Java的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐