您的位置:首页 > 其它

多选模式、多接口实现、屏幕切换练习

2008-10-27 08:58 423 查看
package chapter04;

import javax.microedition.lcdui.Choice;
import javax.microedition.lcdui.ChoiceGroup;
import javax.microedition.lcdui.Command;
import javax.microedition.lcdui.CommandListener;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Displayable;
import javax.microedition.lcdui.Form;
import javax.microedition.lcdui.Item;
import javax.microedition.lcdui.ItemStateListener;
import javax.microedition.lcdui.TextBox;
import javax.microedition.midlet.MIDlet;
import javax.microedition.midlet.MIDletStateChangeException;
/*
 * 作者:Jcuckoo
 * 日期:2008-10-27
 * 功能:多选模式、多接口实现、屏幕切换练习
 */
public class MulChoiceGroupMIDlet extends MIDlet implements ItemStateListener,CommandListener{
 private Display display;
 private Form form;
 private TextBox textBox;
 private Command exitCommand;
 //单选模式
 //private ChoiceGroup cg=new ChoiceGroup("工资水平:",Choice.EXCLUSIVE);
 //零或多选模式
 private ChoiceGroup cg=new ChoiceGroup("工资水平:",Choice.MULTIPLE);
 //弹出模式
 //private ChoiceGroup cg=new ChoiceGroup("工资水平:",Choice.POPUP);
 public MulChoiceGroupMIDlet() {
  display=Display.getDisplay(this);
  form =new Form("");

  textBox=new TextBox("你选中的内容是:","",300,0);
  exitCommand=new Command("返回",Command.SCREEN,1);

  //向cg组件中添加选项
  cg.append("600以下", null);
  cg.append("600~1000", null);
  cg.append("3000~5000", null);
  cg.insert(2, "1000~3000", null);

  //删除指定的选项
  //cg.delete(1);

  //删除所有的选项
  //cg.deleteAll();
  
  //将cg添加到form中
  form.append(cg);

  //注册监听事件
  form.setItemStateListener(this);


  //将退出按钮添加到textBox
  textBox.addCommand(exitCommand);



  //注册监听事件
  textBox.setCommandListener(this);

 }

 protected void destroyApp(boolean arg0) throws MIDletStateChangeException {
 }

 protected void pauseApp() {
 }

 protected void startApp() throws MIDletStateChangeException {
  display.setCurrent(form);
 }

 public void itemStateChanged(Item item) {
  String str="";


  //获取组件cg的大小
  int num=cg.size();
  System.out.println(num);


  //创建1个boolean数组,用来存放cg组件中各项状态
  boolean [] status=new boolean[num];


  //获取cg各项状态,并存放到status数组中
  cg.getSelectedFlags(status);


  //循环显示数组中的内容
  for(int i=0;i<num;i++){
   System.out.println(status[i]);
  }


  //获取数组中为真(即被选择的选项)的内容
  for(int i=0;i<num;i++){
   if(status[i]){
    str=str+cg.getString(i)+"/n";
   }
  }


  //对应内容用textBox来显示
  textBox.setString(str);


  //利用屏幕管理器,进行屏幕切换
  display.setCurrent(textBox);
 
 }


 public void commandAction(Command c, Displayable d) {
  if(c==exitCommand){



   //利用屏幕管理器,进行屏幕切换
   display.setCurrent(form);
  }

  
 }

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: