站内搜索: 请输入搜索关键词

当前页面: 开发资料首页J2ME 专题求助,为何keypressed函数没有作用

求助,为何keypressed函数没有作用

摘要: 求助,为何keypressed函数没有作用


我制作了一个图形菜单,通过keypressed来控制menuindex来控制菜单,但是无论怎样都没有作用,程序大概结构是这样:
run(){
while(true)
repaint()
}
paint(){
...
}
keypressed(int code){
...
}
其中menuindex是static变量,在keypressed中根据按键进行自加减,paint中读取menuindex来绘制按钮。按道理从set.current() keypressed就应该监听键盘了,但是为什么没有作用呢?请大家指点,谢谢!


是setCurrent,写错了,呵呵


while(true)
repaint()

Thread.sleep(80);//加入这一句看看
}


keyPressed(int keyCode){} 大小写错误??

还有setCurrent()里面有没有传入CANVAS对象??


我的代码如下,请大家帮我看看,谢谢

public class MainMenu extends Canvas implements Runnable{

private HsggbMIDlet midlet;

static int menuIdx;
static int width;
static int height;
static int startHeight;
static int menuCount=5;
static int menuHeight=12;
//static int action=0;
//boolean pressed=false;
static final int spacing = 6;

Thread menuThread;

Image bgImage;
private Vector onMenuImages;
private Vector offMenuImages;

public MainMenu(HsggbMIDlet midlet){
this.midlet = midlet;
width=getWidth();
height=getHeight();
startHeight=(height-menuHeight*menuCount-(menuCount-1)*spacing)/2;

menuIdx=0;
try{
bgImage=Image.createImage("/res/bg.png");
}catch (Exception ex){
System.out.print("Error creating the background image :" + ex);
}
onMenuImages=new Vector();
offMenuImages=new Vector();
try{
onMenuImages.addElement(Image.createImage("/res/newgame_on.png"));
onMenuImages.addElement(Image.createImage("/res/loadgame_on.png"));
onMenuImages.addElement(Image.createImage("/res/settings_on.png"));
onMenuImages.addElement(Image.createImage("/res/help_on.png"));
onMenuImages.addElement(Image.createImage("/res/exit_on.png"));

offMenuImages.addElement(Image.createImage("/res/newgame_off.png"));
offMenuImages.addElement(Image.createImage("/res/loadgame_off.png"));
offMenuImages.addElement(Image.createImage("/res/settings_off.png"));
offMenuImages.addElement(Image.createImage("/res/help_off.png"));
offMenuImages.addElement(Image.createImage("/res/exit_off.png"));
}catch(Exception ex){
System.out.print("Error creating on and off images :" + ex);
}

menuThread = new Thread(this);
menuThread.start();
}
public void run(){
while(true){
repaint();
try{
Thread.sleep(80);
}catch (Exception ex){

}
}
}

public void paint(Graphics g){

g.setColor(0x50000000);
g.fillRect(0,0,width,height);
g.drawImage(bgImage,(width - bgImage.getWidth())/2,(height - bgImage.getHeight())/2,20);



for (int i = 0; i < menuCount; i++){
Image menuImage;
if (i == menuIdx)
menuImage = (Image)onMenuImages.elementAt(i);
else
menuImage = (Image)offMenuImages.elementAt(i);
g.drawImage(menuImage,(width - menuImage.getWidth())/2,startHeight + (menuHeight + spacing)*i,Graphics.LEFT|Graphics.TOP);

}
}

protected void KeyPressed (int code){

/*if(action!=getGameAction(code))
pressed = true;
else
pressed = false;*/


if (getGameAction(code)==Canvas.UP&&menuIdx-1>=0){
menuIdx--;
}
else if(getGameAction(code)==Canvas.DOWN&&menuIdx + 1 menuIdx++;
}

}
}



keypressed写错了,奇怪?如果写错了编译会出错的啊?


--------------------------------
www.coderpub.com


是继承自Canvas么?


--------------------------
www.coderpub.com


非常感谢大家,的确是keyPessed大小写问题~~~晕~~我一直记得好像是大写K...郁闷~~到处找错


↑返回目录
前一篇: J2ME 中,是如何实现EventListener的机制的呢?
后一篇: 一个贪心算法解决排序问题