📄 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 + -