j2ME高级用户界面设计

MIDP 高级用户界面设计

1 高级用户界面组件全部定义在

javax.microedition.lcduijavax.microedition.lcduijavax.microedition.

包中。

2 高级屏幕对象(代码在NetBeans下面调试)

(1)第一个J2ME程序

代码

 

 

/*

 * To change this template, choose Tools | Templates

 * and open the template in the editor.

 */

 

package hello;

 

import javax.microedition.midlet.*;

import javax.microedition.lcdui.*;

 

/**

 * @author Administrator

 */

//public class helloj2me extends MIDlet {

public class helloj2me extends MIDlet implements CommandListener {

    private Display display=null;

    private Form form1=null;

    private static final Command exitCommand=new Command("关闭",Command.OK,1);

    public void startApp() {

         if (display==null)

        {

            display=Display.getDisplay(this);

        }

        form1=new Form("主窗体");

        String text="HelloWorld";

        form1.append(text);

        form1.addCommand(exitCommand);

        form1.setCommandListener(this);

        display.setCurrent(form1);

    }

 

    public void pauseApp() {

    }

 

    public void destroyApp(boolean unconditional) {

    }

 

    public void commandAction(Command cmd, Displayable d) {

        if (cmd==exitCommand)

        {

            //destoyApp(false);

            //notifyDestoyed();

            destroyApp(false);

            notifyDestroyed();

        }

    }

}

 

 

 

(2) 判断设备是否是彩色显示屏幕

 

 

代码

/*

 * To change this template, choose Tools | Templates

 * and open the template in the editor.

 */

 

package hello;

 

import javax.microedition.midlet.*;

import javax.microedition.lcdui.*;

 

 

/**

 * @author Administrator

 */

public class CheckColor extends MIDlet implements CommandListener{

    private Display display;

    private TextBox textbox;

    private Command exit;

    public CheckColor()

    {

        display =Display.getDisplay(this);

        exit=new Command("退出",Command.SCREEN,1);

        String message=null;

        System.out.println(display.isColor());

        if (display.isColor())

        {

            message="彩色显示屏幕";

        }

        else

        {

            message="黑白显示屏幕";

        }

 

        textbox=new TextBox("检验屏幕是否是彩色显示屏幕",message,17,TextField.UNEDITABLE);

        textbox.addCommand(exit);

        textbox.setCommandListener(this);

 

    }

    public void startApp() {

        //display.setCurrentItem(textbox);

        display.setCurrent(textbox);

    }

 

    public void pauseApp() {

 

    }

 

    public void destroyApp(boolean unconditional) {

    }

 

    public void commandAction(Command command, Displayable displayable) {

       if (command==exit)

       {

           destroyApp(true);

           notifyDestroyed();

       }

    }

}

 

 

(3) Textbox 文本框

 

 

代码

 

/*

 * To change this template, choose Tools | Templates

 * and open the template in the editor.

 */

 

package hello;

import javax.microedition.midlet.*;

import javax.microedition.lcdui.*;

 

 

/**

 * @author Administrator

 */

public class TextBoxDemo extends MIDlet implements CommandListener{

    private Display display;

    private TextBox textbox;

    private Command submit;

    private Command exit;

    public TextBoxDemo()

    {

        display=Display.getDisplay(this);

        submit=new Command("OK",Command.SCREEN,1);

        exit=new Command("Exit",Command.EXIT,1);

        textbox=new TextBox("Password","",30,TextField.PASSWORD);

        textbox.addCommand(exit);

        textbox.addCommand(submit);

        textbox.setCommandListener(this);

    }

 

    public void startApp() {

        display.setCurrent(textbox);

    }

 

    public void pauseApp() {

       

    }

 

    public void destroyApp(boolean unconditional) {

    }

 

    public void commandAction(Command c, Displayable d) {

        if (c==submit)

        {

            textbox.setConstraints(TextField.ANY);

            textbox.setString("Password is "+textbox.getString());

            textbox.removeCommand(submit);

        }

        else if (c==exit)

        {

            destroyApp(false);

            notifyDestroyed();

        }

    }

}

 

 

(4)List列表、Alert消息框

 

 

代码

/*

 * To change this template, choose Tools | Templates

 * and open the template in the editor.

 */

 

package hello;

 

import javax.microedition.midlet.*;

import javax.microedition.lcdui.*;

 

/**

 * @author Administrator

 */

public class ListCheckBox extends MIDlet implements CommandListener{

    private Display display;

    private Command exit;

    private Command submit;

    private List list;

    public ListCheckBox()

    {

        display=Display.getDisplay(this);

 

        list=new List("您获取信息的途径是:",List.MULTIPLE);

        list.append("电视", null);

        list.append("报纸", null);

        list.append("网络", null);

        list.append("广播", null);

 

        exit=new Command("Exit",Command.EXIT,1);

        submit=new Command("Submit",Command.SCREEN,2);

 

        list.addCommand(exit);

        list.addCommand(submit);

        list.setCommandListener(this);

 

    }

    public void startApp() {

        display.setCurrent(list);

    }

 

    public void pauseApp() {

 

    }

 

    public void destroyApp(boolean unconditional) {

       

    }

 

    public void commandAction(Command c, Displayable d) {

        if (c==submit)

        {

            boolean choice[]=new boolean[list.size()];

            StringBuffer message=new StringBuffer();

            list.getSelectedFlags(choice);

 

            for (int x=0;x<choice.length;x++)

            {

                if (choice[x])

                {

                     message.append(list.getString(x));

                     message.append("    ");

                }

            }

 

            Alert alert=new Alert("拟提交的选项是:",message.toString(),null,null);

            alert.setTimeout(Alert.FOREVER);

            alert.setType(AlertType.INFO);

            display.setCurrent(alert);

            list.removeCommand(c);

        }

        else if (c==exit)

        {

            destroyApp(false);

            notifyDestroyed();           

        }

    }

}

 

(5)Form表单:可滚动表单

 

代码

 

/*

 * To change this template, choose Tools | Templates

 * and open the template in the editor.

 */

 

package hello;

 

import javax.microedition.midlet.*;

import javax.microedition.lcdui.*;

 

/**

 * @author Administrator

 */

public class SliderForm extends MIDlet implements CommandListener{

    private Display display;

    private Form form;

    private Command exit;

 

    public SliderForm()

    {

        display=Display.getDisplay(this);

        exit=new Command("退出",Command.SCREEN,1);

        StringItem message[]=new StringItem[15];

        message[0]=new StringItem("短消息0","未读的短消息");

        message[1]=new StringItem("短消息1","未读的短消息");

        message[2]=new StringItem("短消息2","未读的短消息");

        message[3]=new StringItem("短消息3","未读的短消息");

        message[4]=new StringItem("短消息4","未读的短消息");

        message[5]=new StringItem("短消息5","未读的短消息");

        message[6]=new StringItem("短消息6","未读的短消息");

        message[7]=new StringItem("短消息7","未读的短消息");

        message[8]=new StringItem("短消息8","未读的短消息");

        message[9]=new StringItem("短消息9","未读的短消息");

        message[10]=new StringItem("短消息10","未读的短消息");

        message[11]=new StringItem("短消息11","未读的短消息");

        message[12]=new StringItem("短消息12","未读的短消息");

        message[13]=new StringItem("短消息13","未读的短消息");

        message[14]=new StringItem("短消息14","未读的短消息");

    

 

        form=new Form("收件箱",message);

        form.addCommand(exit);

        form.setCommandListener(this);

    }

 

    public void startApp() {

        display.setCurrent(form);

    }

 

    public void pauseApp() {

    }

 

    public void destroyApp(boolean unconditional) {

    }

 

    public void commandAction(Command c, Displayable d) {

        if (c==exit)

        {

            destroyApp(true);

            notifyDestroyed();

           

        }

    }

}

 

 

 

 

 

(6)Ticker滚动条

 

代码:

 

/*

 * To change this template, choose Tools | Templates

 * and open the template in the editor.

 */

 

package hello;

 

import javax.microedition.midlet.*;

import javax.microedition.lcdui.*;

 

/**

 * @author Administrator

 */

public class TickerList extends MIDlet implements CommandListener{

     private Display display;

     private List list;

     private final String tech;

     private final String entertain;

 

     //声明滚动条

     private Ticker ticker;

     private Command exit;

     private Command submit;

 

 

     public TickerList()

     {

         display=Display.getDisplay(this);

         tech=new String ("诺安股票 1.2302 华夏基金大盘精选 5.8820 融通动力先锋 2.4580 泰达荷银稳定 1.5789");

         entertain=new String ("基金开元 2.534 基金惠普 2.630 基金同益 2.138 基金宏景");

         exit=new Command("Exit",Command.EXIT,1);

         submit=new Command("Submit",Command.SCREEN,1);

         //创建滚动条

         ticker=new Ticker(tech);

         list=new List("显示基金当前净值",Choice.EXCLUSIVE);

         list.append("开放基金", null);

         list.append("封闭基金", null);

         list.addCommand(exit);

         list.addCommand(submit);

         list.setCommandListener(this);

         list.setTicker(ticker);

     }

 

 

    public void startApp() {

        display.setCurrent(list);

    }

 

    public void pauseApp() {

    }

 

    public void destroyApp(boolean unconditional) {

    }

 

    public void commandAction(Command c, Displayable d) {

        if (c==exit)

        {

            destroyApp(true);

            notifyDestroyed();

        }

        else if (c==submit)

        {

            if (list.getSelectedIndex()==0)

            {

                ticker.setString(tech);

            }

            else

            {

                ticker.setString(entertain);

            }

                   

        }

    }

}

 

 

 

 

posted @ 2011-02-11 12:00  jhtchina  阅读(715)  评论(0)    收藏  举报