如何在J2ME中使用抽象方法?

时间:2011-04-03 09:16:08

标签: java

我实现了一些具有类似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类功能彼此不同!你能帮助我吗?

1 个答案:

答案 0 :(得分:1)

在父级中,让处理程序检测特定按钮并委托给两个单独的抽象方法。在孩子中,实施方法。