日期:2014-05-20  浏览次数:20670 次

j2me中如何使用复选框?
movies=new ChoiceGroup("Select Movies you like to see ",Choice.MULTIPLE);
  movies.append("Acton", null);
  movies.append("Romance", null);
  movies.append("Comedy",null);
  movies.append("Horror", null);


但不知道该怎样来获取选中的项。

------解决方案--------------------
用getSelectedFlags或getSelectedIndex()

你这个程序是书上的,源代码如下
Java code

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


public class CheckBoxes extends MIDlet implements CommandListener{
    private Display display;
    private Form form;
    private Command exit;
    private Command process;
    private ChoiceGroup movies;
    private int movieIndex;
    
    public CheckBoxes() {
        display = Display.getDisplay(this);
        movies = new ChoiceGroup("Select movies you like to see",Choice.MULTIPLE);
        movies.append("Action", null);
        movies.append("Romance", null);
        movies.append("Comedy", null);
        movies.append("Horror", null);
        exit = new Command("Exit",Command.EXIT,1);
        process = new Command("Process",Command.SCREEN,2);
        form = new Form("movies");
        movieIndex = form.append(movies);
        form.addCommand(exit);
        form.addCommand(process);
        form.setCommandListener(this);
    }

         public void startApp(){
            display.setCurrent(form);
        }
        
        public void pauseApp(){
        }

        public void destroyApp(boolean arg0){
        }
        
        public void commandAction(Command command,Displayable displayable){
             if(command==exit){
                 destroyApp(true);
                 notifyDestroyed();
             }
             else if(command==process){
                 boolean picks[] = new boolean[movies.size()];
                 StringItem message[] = new StringItem[movies.size()];
                 movies.getSelectedFlags(picks);
                 for(int x=0;x<picks.length;x++){
                     if(picks[x]){
                         message[x] = new StringItem("",movies.getString(x)+"\n");
                         form.append(message[x]);
                     }
                 }
                 form.delete(movieIndex);
                 form.removeCommand(process);
             }
        }
        
}

------解决方案--------------------
boolean picks[] = new boolean[movies.size()];
StringItem message[] = new StringItem[movies.size()];
movies.getSelectedFlags(picks);
for(int x=0;x<picks.length;x++){
if(picks[x]){
message[x] = new StringItem("",movies.getString(x)+"\n");
form.append(message[x]);
}
}
form.delete(movieIndex);
form.removeCommand(process);

------解决方案--------------------
boolean b[] = new boolean[4];
movies.getSelectedFlags(b);
for(int i = 0;i < b.length;i++){
if(b[i]){
System.out.println("第" + (i + 1) + "项被选中!");
}
}