求Java 实现绘制图形并移动代码

在屏幕上绘制一个黑色正方形,当用户按确定键时,此正方形随机向一方向持续移动,且当正方形碰撞到屏幕边缘时向反方向移动。当用户再次按确定键时正方形停止移动。(两个类实现,MI... 在屏幕上绘制一个黑色正方形,当用户按确定键时,此正方形随机向一方向持续移动,且当正方形碰撞到屏幕边缘时向反方向移动。当用户再次按确定键时正方形停止移动。(两个类实现,MIDlet类和普通类) 展开
 我来答
匿名用户
2013-12-13
展开全部
代码如下:import javax.microedition.lcdui.Canvas;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Graphics;
import javax.microedition.midlet.MIDlet;
import javax.microedition.midlet.MIDletStateChangeException;public class Zfx extends MIDlet {
private Display display;
public Zfx() {
display=Display.getDisplay(this);
Zfxc qs=new Zfxc();
display.setCurrent(qs);
}
protected void destroyApp(boolean arg0) throws MIDletStateChangeException {
}
protected void pauseApp() {
}
protected void startApp() throws MIDletStateChangeException {
}
}
class Zfxc extends Canvas implements Runnable{
private int x,y,x1,y1,i;
private boolean flag;
Zfxc(){
init();
}
private void init(){
Thread thread=new Thread(this);
thread.start();
}
protected void paint(Graphics g) {
g.setColor(255,255,255);
g.fillRect(0, 0, this.getWidth(), this.getHeight());
g.setColor(0);
g.fillRect(x, y, 10, 10);
}
private void logic(){
if(x<=0){
x1=1;
}else if(x>=this.getWidth()-10){
x1=2;
}
if(x1==1){
x+=3;
}else if(x1==2){
x-=3;
}
if(y<=0){
y1=1;
}else if(y>=this.getHeight()-10){
y1=2;
}
if(y1==1){
y+=3;
}else if(y1==2){
y-=3;
}
}
protected void keyPressed(int keyCode) {
if(keyCode==-5){
if(i==0){
flag=true;
i=1;
}else if(i==1){
flag=false;
i=0;
}
}
}
public void run() {
while(true){
if(flag){
logic();
}
repaint();
try {
Thread.sleep(80);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式