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

笔记|程序|控制|设计

利用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(); }}

时间: 2024-07-30 10:45:38

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

《Java 手机/PDA 程序设计入门》读书笔记11-- MIDP数据库设计1

笔记|程序|设计|数据|数据库|数据库设计 JDBC针对桌面平台或企业用户设计,不适合移动通讯设备. MIDP为的永久性数据储存提供了面向纪录的数据库(Record Orieted Database),称作"记录管理系统"Record Management System(RMS) 所有和记录管理系统相关的类放于javax.microedition.rms包中,包括:一个类:RecordStore四个接口:RecorComparatorRecordEnumerationRecordFil

《Java 手机/PDA 程序设计入门》读书笔记3--LCDAUI高级API之List

笔记|程序|高级|设计 Screen类有四个子类: Alert List TextBox Form List根据Choice接口的定义,分为:Choice.Exclusive(单选)Choice.MULTIPLE(多选)Choice.IMPLICIT(简易式的单选) 单选型Image img=Image.createImage("/a.png");List l=new List("List test",Choice.Exclusive);l.append("

《Java 手机/PDA 程序设计入门》读书笔记5--LCDAUI高级API之Alert

笔记|程序|高级|设计 AlertType是工具类,本身不能实例化.它提供了几个定义好的AlertYtpe以辅助Alert类使用.包括:ALARM 警报CONFIRMATION 确定ERROR 错误INFO 提供信息WARNING 警告 警告音:Display display;AlertType.ALARM.playSound(display);AlertType.CONFIRMATION.playSound(display);AlertType.ERROR.playSound(display)

《实战Java高并发程序设计》读书笔记

有助于提高锁性能的几点建议 1.减少锁持有的时间--–只在必要时进行同步 2.减小锁的粒度 ConcurrentHashMap(只有获取全局信息的方法调用不频繁时,这种方法才能真正意义上提高系统吞吐量) 3.读写分离锁替代独占锁--–ReadWriteLock 4.锁分离的思想--–LinkedBlockingQueue take().put()使用不同的锁 5.锁粗化 虚拟机在遇到一连串连续地对同一锁不断进行请求和释放的操作时,便会把所有的锁操作整合成对锁的一次请求,从而减少对锁的请求同步次数

一个男人和三个女人的故事[《.net框架程序设计》读书笔记

.net框架|笔记|程序|设计|示例 第十一章 多事件示例[一个男人和三个女人的故事] 摘要: 应用FCL中的System.ComponentModel.EventHandlerList示例一个类型中发布多事件的应用 场景:一个男生有三个女朋友,各自有不同的爱好,女朋友A爱好音乐,女朋友B爱好美食,女朋友C爱好XXX,为满足各个女朋友,此男生必须进行唱歌.烹饪食物.xxx. 以此制作程序演示单类型多事件的应用,并假设此男同时只能干一件事情(即排除一边xxx一边唱歌或一边xxx一边烹饪的可能J)

第十四章 数组[《.net框架程序设计》读书笔记]

.net框架|笔记|程序|设计|数组 第十四章 数组. 内容摘要: 本章讨论了数组的方方面面,对于这种常用类型进行深入研究. 一. 数组简介 三种类型:一维数组.多维数组.交错数组(jagged aray) l 一维数组: Int32[] myIntegers; myIntegers = new Int32[100]; l 多维数组: Int32[,] myIntegers; myIntegers = new Int32[100,100]; l 交错数组:交错数组不受CLS支持 Point[][

第十三章 枚举类型与位标记[《.net框架程序设计》读书笔记]

.net框架|笔记|程序|设计 第十三章 枚举类型与位标记 一. 枚举类型 1. 使用枚举类型的理由: l 枚举类型是得程序更容易编写.阅读.维护,在代码中使用符号名称代替数字是程序设计的一贯主张. l 强类型的,便于类型检验 2. 注意事项: l 枚举类型继承自System.Enum,System.Enum又继承自System.ValurType l 枚举类型不能定义方法.属性.事件 l 枚举类型为常数而非只读字段,因此可能引入版本问题(见第八章的相关讨论) l 将枚举类型与引用它的类型定义在

第九章 方法[《.net框架程序设计》读书笔记]

.net框架|笔记|程序|设计 第九章 方法 一. 实例构造器 1. 前面提到用new操作符创建对象时的三部曲: l 为对象分配内存 l 初始化对象的附加成员(方法表指针和SyncBlockIndex) l 调用实例构造器初始化实例状态 在分配内存时,系统将所有内存位置均置为0值,这就是为什么字段初始化而未赋值时均为0或null值. 不调用实例构造器的情况: l 调用Object.MemberwiseClone()方法创建实例(分配内存:初始化附加成员:将源对象字节拷贝到新创建的对象) l 反序

第八章 常数与字段[《.NET框架程序设计》读书笔记]

.net框架|笔记|常数|程序|设计 第八章 常数与字段 一.常数 1.可被定义为常数的类型有: 2 基元类型:Boolean, Char, Byte, SByte, Decimal, Int16, Int32, UInt16, UInt32, Int64, UInt64, Single, Double 2 字符串:String 2 枚举类型 2.常数在编译后直接嵌入IL代码中,因此一个模块中的常数不能在运行时被另一模块获取,前者对常数进行的修改无法被另一个模块在运行时感知,因此要想在运行时获取