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);
}
}
}