Java/J2ME/ChoiceGroup

Материал из Java эксперт
Перейти к: навигация, поиск

ChoiceGroup With Images

   <source lang="java">

/*--------------------------------------------------

  • ChoiceGroupWithImages.java
  • Example from the book: Core J2ME Technology
  • Copyright John W. Muchow http://www.CoreJ2ME.ru
  • You may use/modify for any non-commercial purpose
  • -------------------------------------------------*/

import javax.microedition.midlet.*; import javax.microedition.lcdui.*; public class ChoiceGroupWithImages extends MIDlet implements CommandListener {

 private Display display;      // Reference to display object 
 private Form fmMain;         // Main form
 private Command cmExit;      // Command to exit the MIDlet
 private Command cmView;      // View the choice selected
 private ChoiceGroup cgPrefs; // Choice Group of preferences
 public ChoiceGroupWithImages()
 {
   display = Display.getDisplay(this);
   try 
   { 
     // Create array of image objects
     Image images[] = {Image.createImage("/up.png"), Image.createImage("/down.png"),
                       Image.createImage("/help.png") };            
                       
     // Create array of corresponding string objects                        
     String options[] = {"Upload", "Download", "Help"};          
     
     // Create a choice group using arrays
     cgPrefs = new ChoiceGroup("Select Option:", Choice.EXCLUSIVE, options, images);    
   }
   catch (java.io.IOException e)
   {
     System.err.println("Unable to locate or read .png file");
   }
   
   cmExit = new Command("Exit", Command.EXIT, 1);
   cmView = new Command("View", Command.SCREEN,2);
   // Create Form, add components, listen for events
   fmMain = new Form("");
   fmMain.append(cgPrefs);
   fmMain.addCommand(cmExit);
   fmMain.addCommand(cmView);
   fmMain.setCommandListener(this);   
 }
 public void startApp()
 {
   display.setCurrent(fmMain);
 }
 public void pauseApp()
 { }
 
 public void destroyApp(boolean unconditional)
 { }
 public void commandAction(Command c, Displayable s)
 {
   if (c == cmView)
   {
     boolean selected[] = new boolean[cgPrefs.size()];
    
     // Fill array indicating whether each element is checked 
     cgPrefs.getSelectedFlags(selected);
     // Print to console the status of each element      
     for (int i = 0; i < cgPrefs.size(); i++)
       System.out.println(cgPrefs.getString(i) + (selected[i] ? ": selected" : ": not selected"));
   }
   else if (c == cmExit)
   {
     destroyApp(false);
     notifyDestroyed();
   } 
 }

}


      </source>
   
  
 
  



Exclusive ChoiceGroup

   <source lang="java">

/*--------------------------------------------------

  • ExclusiveChoiceGroup.java
  • Example from the book: Core J2ME Technology
  • Copyright John W. Muchow http://www.CoreJ2ME.ru
  • You may use/modify for any non-commercial purpose
  • -------------------------------------------------*/

import javax.microedition.midlet.*; import javax.microedition.lcdui.*; public class ExclusiveChoiceGroup extends MIDlet implements ItemStateListener, CommandListener {

 private Display display;      // Reference to display object 
 private Form fmMain;         // The main form
 private Command cmExit;      // A Command to exit the MIDlet
 private Command cmView;      // View the choice selected
 private ChoiceGroup cgEmail; // Choice group
 private int replyIndex;       // Index of "reply" in choice group
 private int choiceGroupIndex; // Index of choice group on form
 public ExclusiveChoiceGroup()
 {
   display = Display.getDisplay(this);
   // Create an exclusive (radio) choice group
   cgEmail = new ChoiceGroup("Email Options", Choice.EXCLUSIVE);
   
   // Append options, with no associated images
   cgEmail.append("Read", null);
   replyIndex = cgEmail.append("Reply", null);
   cgEmail.append("Forward", null);    
   cgEmail.append("Delete", null);    
   // Set "reply" as the default/selected option
   cgEmail.setSelectedIndex(replyIndex, true);
   cmExit = new Command("Exit", Command.EXIT, 1);
   cmView = new Command("View", Command.SCREEN,2);
   // Create Form, add components, listen for events
   fmMain = new Form("");
   choiceGroupIndex = fmMain.append(cgEmail);
   fmMain.addCommand(cmExit);
   fmMain.addCommand(cmView);
   fmMain.setCommandListener(this);   
 }
 // Called by application manager to start the MIDlet.
 public void startApp()
 {
   display.setCurrent(fmMain);
 }
 public void pauseApp()
 { }
 
 public void destroyApp(boolean unconditional)
 { }
 public void commandAction(Command c, Displayable s)
 {
   if (c == cmView)
   {
     // Build a string showing which option was selected
     StringItem stiMessage = new StringItem("You selected: ", cgEmail.getString(cgEmail.getSelectedIndex()));
     fmMain.append(stiMessage);      
     
     // Delete the choice group & view button
     fmMain.delete(choiceGroupIndex);
     fmMain.removeCommand(cmView);
   }
   else if (c == cmExit)
   {
     destroyApp(false);
     notifyDestroyed();
   } 
 }
 
 public void itemStateChanged(Item item)              
 {
 }

}


      </source>
   
  
 
  



multiple ChoiceGroup

   <source lang="java">

/*--------------------------------------------------

  • MultipleChoiceGroup.java
  • Example from the book: Core J2ME Technology
  • Copyright John W. Muchow http://www.CoreJ2ME.ru
  • You may use/modify for any non-commercial purpose
  • -------------------------------------------------*/

import javax.microedition.midlet.*; import javax.microedition.lcdui.*; public class MultipleChoiceGroup extends MIDlet implements ItemStateListener, CommandListener {

 private Display display;      // Reference to display object 
 private Form fmMain;          // The main form
 private Command cmExit;       // A Command to exit the MIDlet
 private Command cmView;       // View the choice selected
 private int selectAllIndex;   // Index of the "Select All" option
 private ChoiceGroup cgPrefs;  // Choice Group of preferences
 private int choiceGroupIndex; // Index of choice group on form
 public MultipleChoiceGroup()
 {
   display = Display.getDisplay(this);
   // Create a multiple choice group
   cgPrefs = new ChoiceGroup("Preferences", Choice.MULTIPLE);
   
   // Append options, with no associated images
   cgPrefs.append("Auto Indent", null);
   cgPrefs.append("Replace Tabs", null);
   cgPrefs.append("Wrap Text", null);    
   selectAllIndex = cgPrefs.append("Select All", null);    
   cmExit = new Command("Exit", Command.EXIT, 1);
   cmView = new Command("View", Command.SCREEN,2);
   // Create Form, add components, listen for events
   fmMain = new Form("");
   choiceGroupIndex = fmMain.append(cgPrefs);
   fmMain.addCommand(cmExit);
   fmMain.addCommand(cmView);
   fmMain.setCommandListener(this);   
   fmMain.setItemStateListener(this);
 }
 public void startApp()
 {
   display.setCurrent(fmMain);
 }
 public void pauseApp()
 { }
 
 public void destroyApp(boolean unconditional)
 { }
 public void commandAction(Command c, Displayable s)
 {
   if (c == cmView)
   {
     boolean selected[] = new boolean[cgPrefs.size()];
    
     // Fill array indicating whether each element is checked 
     cgPrefs.getSelectedFlags(selected);
     
     for (int i = 0; i < cgPrefs.size(); i++)
       System.out.println(cgPrefs.getString(i) + (selected[i] ? ": selected" : ": not selected"));
   }
   else if (c == cmExit)
   {
     destroyApp(false);
     notifyDestroyed();
   } 
 }
 
 public void itemStateChanged(Item item)              
 {
   if (item == cgPrefs)
   {
     // Is "Select all" option checked ?
     if (cgPrefs.isSelected(selectAllIndex))
     {
       // Set all checkboxes to true
       for (int i = 0; i < cgPrefs.size() - 1; i++)
         cgPrefs.setSelectedIndex(i, true);
       // Remove the check by "Select All"               
       cgPrefs.setSelectedIndex(selectAllIndex, false);
     }
   }
 }

}


      </source>