我实现了一些具有类似Canvas的警报类的代码,并且它有一个keyPress方法,对于使用alert类的每个类,它必须有不同的工作方式。例如,keyPress方法有2个按钮,每个按钮的功能对于每个类都是不同的!谁能告诉我怎样才能实现呢?
public class myAlert extends Canvas实现了CommandListener {
public myAlert(Midlet midlet,int width,int height,String str,String left_str,String right_str){
}
protected void paint(Graphics g){
g.setColor(0,0,0);
g.drawRoundRect(5,180,width-10,height,8,8);
g.drawRoundRect(15,185,width-15,height-5,7,7);
g.setColor(0xbfd4f6);
g.fillRoundRect(0,180,width,height,8,8);
///////////////
}
protected void keyPressed(int keyCode)
{
开关(键代码){
case -6://选择按钮
//
打破;
case -7://关闭按钮
break;
}
}
}
公共类M(){
protected void keyPressed(int keyCode){
switch (state) {
case STATE_INPUT_LEFT:
// do work for focus on the left
if (keyCode >= KEY_NUM0 && keyCode <= KEY_NUM9 && digitsEntered < 10) {
digits_left[digitsEntered] = (char) ('0' + (keyCode - KEY_NUM0));
digitsEntered++;
repaint();
if(digitsEntered>=8){
state=STATE_INPUT_RIGHT;
m= new myAlert(midlet,w, 150,"Ok " ,"exit",”system”);
//我希望如果用户单击“确定”按钮,则必须向用户显示主页面 Display.getDisplay(midlet).setCurrent(m); 打破; } } } 公共类N(){ public void commandAction(命令c,Displayable d){ String label = c.getLabel(); 如果(label.equals( “退出”)){ midlet.exit(); } else if(label.equals(“Enter”)){ m = new myAlert(midlet,w,150,“yes”,“No”,“Print”); //我想在这里,如果用户点击确定,则会向用户显示另一条消息 Display.getDisplay(midlet).setCurrent(m);
}
}
这是我的代码的一部分!正如你在M类中所看到的那样,Alert类左键的N类功能彼此不同!你能帮助我吗?
答案 0 :(得分:1)
在父级中,让处理程序检测特定按钮并委托给两个单独的抽象方法。在孩子中,实施方法。