使用 MIDP 底层用户接口 API(3)
private String message = "Press any key";
public MyCanvas( MIDlet midlet ){
super( midlet );
}
protected void paint( Graphics g ){
g.setColor( 255, 255, 255 );
g.fillRect( 0, 0, getWidth(), getHeight() );
g.setColor( 0, 0, 0 );
g.drawString( message, getWidth()/2, 0,
g.TOP | g.HCENTER );
}
protected void keyPressed( int keyCode ){
if( keyCode == fireKey ){
message = "FIRE";
} else if( keyCode == leftKey ){
message = "LEFT";
} else if( keyCode == rightKey ){
message = "RIGHT";
} else if( keyCode == upKey ){
message = "UP";
} else if( keyCode == downKey ){
message = "DOWN";
} else {
message = getKeyName( keyCode );
}
repaint();
}
}
指针事件是可选项,因为不是所有的MIDP可用的设备都支持指针。你可以在指针有效的时候来使用它的优势。但是你不能够假设它是可用的。你可以检测是否指针事件可以被激发,通过调用Canvas.hasPointerEvents。指针事件方法获取指针的位置:
protected void pointerPressed( int x, int y ){
// do something here
}
另一种方法引导用户输入是为canvas附加命令。一个命令是一个动作的抽象表现。它有一个用户定义的label, type和优先级。设备使用type映射命令到相应的键或按钮。例如,如果设备有一个标准的OK键,指定一个命令类型为OK,确保OK按钮激发这个命令。有效的类型有BACK, CANCEL, EXIT, HELP, ITEM, OK, SCREEN, 和STOP。一部分或全部这些都可以映射到相同的按键或按钮。这样,当有冲突的时候,设备可以使用优先级来适当的排列命令次序。优先级是一个正整数,1是最高优先级。
命令是使用Command类来创建的,如下:
Command exitCommand = new Command( "Exit", Command.SCREEN, 1 );
你使用addCommand方法来将命令添加到canvas:
canvas.addCommand(exitCommand);
你必须注册命令,使用:
setListener: canvas.setListener( listener ) ;
监听器必须实现CommandListener借口。它对于主要的MIDlet类来实现CommandListener来获取exit命令是通用的,如下所示:
相关新闻>>
- 发表评论
-
- 最新评论 更多>>