Java/J2ME/ChoiceGroup — различия между версиями
Admin (обсуждение | вклад) м (1 версия) |
|
(нет различий)
|
Текущая версия на 09:37, 1 июня 2010
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>