j2me-CustomItem

1、允许自定义ITEM,但必须实现CustomItem中的所有抽象方法才能实例化,支持ItemStateListener接口。

2、CustomItem子类实例可以接受键盘和触笔输入。getPrefContentWidth表示最佳内容宽度等

3、完成一个图形按钮的定义,这个按钮接收键盘输入。

4、图

5、代码

 

package test;

import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;


public class VisualMIDlet extends MIDlet implementsCommandListener,ItemStateListener {

    privateboolean midletPaused = false;

   //<editor-fold defaultstate="collapsed" desc="Generated Fields ">
    private Formform;
    privateTextField textField;
    privateAlert alert;
    privateCommand exitCommand;
   //</editor-fold>
    private imagebutton imagebut;
   
    publicVisualMIDlet() {
    }

   //<editor-fold defaultstate="collapsed" desc="Generated Methods ">
   //</editor-fold>

   //<editor-fold defaultstate="collapsed" desc="Generated Method: initialize ">
   
    private voidinitialize() {
       // write pre-initialize user code here
 
       // write post-initialize user code here
    }
   //</editor-fold>

   //<editor-fold defaultstate="collapsed" desc="Generated Method: startMIDlet ">
   
    public voidstartMIDlet() {
       // write pre-action user code here
       switchDisplayable(null, getForm());
       form.append(getimageButton("Login"));
       // write post-action user code here
    }
   //</editor-fold>

   //<editor-fold defaultstate="collapsed" desc="Generated Method: resumeMIDlet ">
   
    public voidresumeMIDlet() {
       // write pre-action user code here
       switchDisplayable(null, getForm());
       // write post-action user code here
    }
   //</editor-fold>

   //<editor-fold defaultstate="collapsed" desc="Generated Method: switchDisplayable ">
   
    public voidswitchDisplayable(Alert alert, Displayable nextDisplayable) {
       // write pre-switch user code here
       Display display = getDisplay();
       if (alert == null) {
           display.setCurrent(nextDisplayable);
       } else {
           display.setCurrent(alert, nextDisplayable);
       }
       // write post-switch user code here
    }
   //</editor-fold>

   //<editor-fold defaultstate="collapsed" desc="Generated Getter: form ">
   
    public FormgetForm() {
       if (form == null) {
           // write pre-init user code here
           form = new Form("form", new Item[] { getTextField() });
           form.addCommand(getExitCommand());
           form.setCommandListener(this);
           form.setItemStateListener(this);           
           // write post-init user code here
       }
       return form;
    }
   //</editor-fold>

   //<editor-fold defaultstate="collapsed" desc="Generated Getter: textField ">
   
    publicTextField getTextField() {
       if (textField == null) {
           // write pre-init user code here
           textField = new TextField("textField", null, 32,TextField.ANY);
           // write post-init user code here
       }
       return textField;
    }
   //</editor-fold>

   //<editor-fold defaultstate="collapsed" desc="Generated Method: commandAction for Displayables">
   
    public voidcommandAction(Command command, Displayable displayable) {
       // write pre-action user code here
       if (displayable == form) {
           if (command == exitCommand) {
               // write pre-action user code here
               exitMIDlet();
               // write post-action user code here
           }
       }
       // write post-action user code here
    }
   //</editor-fold>

   //<editor-fold defaultstate="collapsed" desc="Generated Getter: exitCommand ">
   
    publicCommand getExitCommand() {
       if (exitCommand == null) {
           // write pre-init user code here
           exitCommand = new Command("/u9000/u51FA", Command.EXIT, 0);
           // write post-init user code here
       }
       return exitCommand;
    }
   //</editor-fold>

   //<editor-fold defaultstate="collapsed" desc="Generated Getter: alert ">
   
    public AlertgetAlert() {
       if (alert == null) {
           // write pre-init user code here
           alert = new Alert("alert", "/u4F60/u9009/u62E9/u4E86Custom/u5B50/u7C7B/u5B9E/u4F8B", null, AlertType.INFO);
           alert.setTimeout(Alert.FOREVER);
           // write post-init user code here
       }
       return alert;
    }
   //</editor-fold>
    private imagebutton getimageButton(String name){
       if (imagebut==null) imagebut=new imagebutton(name);
       return imagebut;
    }
   
   
    publicDisplay getDisplay () {
       return Display.getDisplay(this);
    }

   
    public voidexitMIDlet() {
       switchDisplayable (null, null);
       destroyApp(true);
       notifyDestroyed();
    }

   
    public voidstartApp() {
       if (midletPaused) {
           resumeMIDlet ();
       } else {
           initialize ();
           startMIDlet ();
       }
       midletPaused = false;
    }

   
    public voidpauseApp() {
       midletPaused = true;
    }

   
    public voiddestroyApp(boolean unconditional) {
    }

    classimagebutton extends CustomItem{
        private   Image image;
        private   String label;
        private   Font font;
       protected imagebutton(String label){
          super("");
          this.label=label;
          image=Image.createImage(30,30);
          font=Font.getFont(Font.FACE_PROPORTIONAL,Font.STYLE_BOLD,Font.SIZE_SMALL);
          Graphics graphics=image.getGraphics();
          graphics.setColor(255,0,0);
          graphics.fillRect(0, 0, 30, 30); 
          graphics.setColor(0,255,0); 
          graphics.setFont(font);          
          graphics.drawString(label,0, 0, Graphics.LEFT|Graphics.TOP);
       }

       protected int getMinContentWidth() {
           return font.stringWidth(label);
       }

       protected int getMinContentHeight() {
           return font.getHeight();
       }

 

       protected int getPrefContentWidth(int PrefWidth) {
           return font.stringWidth(label)+5;
       }

       protected int getPrefContentHeight(int PrefHeight) {
           returnfont.getHeight()+5;    
       }

       protected void paint(Graphics g, int w, int h) {
           if (image!=null){
               g.drawImage(image,0,0, Graphics.TOP|Graphics.LEFT);
           }

       }
       protected void keyPressed(int keyCode){
           notifyStateChanged();
       }        
       
    }

    publicvoid itemStateChanged(Item item) {
       if (item==imagebut){
           switchDisplayable(getAlert(), getForm());
       }
       
    }
   
   
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值