?? maincanvas.java
字號:
package com.j2medev.chapter3;
import java.util.Random;
import javax.microedition.lcdui.Canvas;
import javax.microedition.lcdui.Graphics;
import javax.microedition.rms.RecordStore;
public class MainCanvas extends Canvas implements Runnable {
//在內存中存儲方塊的x,y值
private int x = 0;
private int y = 0;
public static final int WIDTH = 20;
public static final int FRAME_LENGTH = 2500;
private Random random = new Random();
private Thread t = null;
//是否為重新啟動
private boolean restart = false;
private boolean stopped = false;
//方便MainCanvas回調midlet的pauseApp()方法
private LifeMIDlet midlet = null;
public MainCanvas(LifeMIDlet midlet) {
this.midlet = midlet;
x = getWidth()/2;
y = getHeight()/2;
t = new Thread(this);
t.start();
}
//設置是否是中斷后重新啟動
public void setRestart(boolean flag){
restart = flag;
}
public void release(){
stopped = true;
t = null;
}
public void restart(){
stopped = false;
t = new Thread(this);
t.start();
}
public void run(){
//如果是從中斷中恢復,讓計時器線程休眠1秒后再執行
//確保用戶能看到中斷前的界面
if(restart){
try {
t.sleep(1000);
} catch (InterruptedException ex) {
ex.printStackTrace();
}
}
while(!stopped){
long t1 = System.currentTimeMillis();
beep();
repaint();
serviceRepaints();
long t2 = System.currentTimeMillis();
if(t2 - t1 < FRAME_LENGTH){
try{
Thread.sleep(FRAME_LENGTH + t1 - t2);
}catch(Exception ex){
ex.printStackTrace();
}
}
}
System.out.println("The value of x,y is saved as ("+x+","+y+")");
}
private void beep(){
//隨即更新x,y值
x =( random.nextInt()>>>1)%(getWidth()-WIDTH);
y = (random.nextInt()>>>1)%(getHeight()-WIDTH);
}
public void paint(Graphics g){
System.out.println("("+x+","+y+")");
g.setColor(0xFFFFFF);
g.fillRect(0,0,getWidth(),getHeight());
g.setColor(0,128,128);
g.drawString("("+x+","+y+")",0,0,Graphics.LEFT|Graphics.TOP);
g.fillRect(x, y, WIDTH,WIDTH);
}
public void showNotify(){
}
public void hideNotify(){
//針對Nokia 7610的處理,nokia 7610不會調用pauseApp()。
//#if DefaultColorPhone
midlet.pauseApp();
//#endif
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -