public void paintagain(){
try{
super.paint(g);
repaint();
}catch(Exception e)
{
e.printStackTrace();
}
}
protected void keyPressed(int keyCode)
{
int keyState = getGameAction(keyCode) ; //判断上下左右键是否被按下
switch (keyState){
case Canvas.LEFT:
i-=10;
paintagain();
break;
case Canvas.RIGHT:
i+=10;
paintagain();
break;
case Canvas.UP:
j-=10;
paintagain();
break;
case Canvas.DOWN:
j+=10;
paintagain();
break;
}
}
try{
super.paint(g);
repaint();
}catch(Exception e)
{
e.printStackTrace();
}
}
protected void keyPressed(int keyCode)
{
int keyState = getGameAction(keyCode) ; //判断上下左右键是否被按下
switch (keyState){
case Canvas.LEFT:
i-=10;
paintagain();
break;
case Canvas.RIGHT:
i+=10;
paintagain();
break;
case Canvas.UP:
j-=10;
paintagain();
break;
case Canvas.DOWN:
j+=10;
paintagain();
break;
}
}
楼主【nightwindhb】截止到2008-07-15 15:53:44的历史汇总数据(不包括此帖):
发帖的总数量:2 发帖的总分数:70 每贴平均分数:35
回帖的总数量:5 得分贴总数量:0 回帖的得分率:0%
结贴的总数量:2 结贴的总分数:70
无满意结贴数:0 无满意结贴分:0
未结的帖子数:0 未结的总分数:0
结贴的百分比:100.00% 结分的百分比:100.00%
无满意结贴率:0.00 % 无满意结分率:0.00 %
敬礼!
可以尝试时间监听器实现KeyListener接口或者继承KeyAdapter类。
然后重写keyPressed方法
里面判断的时候KeyEvent.VK_UP表示向上按钮被按下 ,其余类推
public void keyPressed(KeyEvent e) {}
import javax.microedition.lcdui.Command;
import javax.microedition.lcdui.CommandListener;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Displayable;
import javax.microedition.midlet.MIDlet;
import javax.microedition.midlet.MIDletStateChangeException;public class MyMidlet extends MIDlet implements CommandListener{
private Command exitCommand;
private MyCanvas myCanvas;
public MyMidlet()
{
//canvas=new MyCanvas(); //创建MyCanvas对象
exitCommand =new Command("Exit",Command.EXIT,1);
myCanvas =new MyCanvas();
myCanvas.addCommand(exitCommand);
myCanvas.setCommandListener(this);
}
public void startApp()
{
Display.getDisplay(this).setCurrent(myCanvas); //显示MyCanvas
}
public void pauseApp() {
}
public void destoryApp(boolean unconditional)
{} protected void destroyApp(boolean arg0) throws MIDletStateChangeException {
} public void commandAction(Command arg0, Displayable arg1) {
}
}第一个文件
import javax.microedition.lcdui.Graphics;
import javax.microedition.lcdui.Image;
import javax.microedition.lcdui.game.GameCanvas;public class MyCanvas extends GameCanvas{
protected MyCanvas() {
super(false);
} private Image image;
private int sum=0;
private int i=0;
private int j=50;
private Graphics g;
public void paint(Graphics g){ //重载paint方法 if(sum == 0)
{
paintdraw(g);
}
}
public void paintdraw(Graphics g){
try
{
image=Image.createImage("/logo.PNG");
sum+=1;
}
catch(java.io.IOException e)
{
System.out.println(e.getMessage());
}
g.setColor(0x00ffff00);
g.fillRect(0,0,this.getWidth(),this.getHeight());
g.drawImage(image,i,j,g.TOP|g.LEFT);
} public void paintagain(){
try{
super.paint(g);
repaint();
}catch(Exception e)
{
e.printStackTrace();
}
}
protected void keyPressed(int keyCode)
{
int keyState = getGameAction(keyCode) ; //判断上下左右键是否被按下
switch (keyState){
case Canvas.LEFT:
i-=10;
paintagain();
break;
case Canvas.RIGHT:
i+=10;
paintagain();
break;
case Canvas.UP:
j-=10;
paintagain();
break;
case Canvas.DOWN:
j+=10;
paintagain();
break;
}
}
}
第二个文件
我估计空指针的地方是我发贴的时候贴出来那部分代码
可以试试http://www.swtui.cn/