Java Tutorial/J2ME/List
Содержание
Implicit Menu
import javax.microedition.lcdui.Alert;
import javax.microedition.lcdui.AlertType;
import javax.microedition.lcdui.rumand;
import javax.microedition.lcdui.rumandListener;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Displayable;
import javax.microedition.lcdui.List;
import javax.microedition.midlet.MIDlet;
public class J2MEListImplicit extends MIDlet implements CommandListener {
private Display display;
private List list;
private Command exit;
Alert alert;
public J2MEListImplicit() {
display = Display.getDisplay(this);
exit = new Command("Exit", Command.EXIT, 1);
list = new List("Menu:", List.IMPLICIT);
list.append("New", null);
list.append("Open", null);
list.addCommand(exit);
list.setCommandListener(this);
}
public void startApp() {
display.setCurrent(list);
}
public void pauseApp() {
}
public void destroyApp(boolean unconditional) {
}
public void commandAction(Command command, Displayable displayable) {
if (command == List.SELECT_COMMAND) {
String selection = list.getString(list.getSelectedIndex());
alert = new Alert("Option Selected", selection, null, null);
alert.setTimeout(Alert.FOREVER);
alert.setType(AlertType.INFO);
display.setCurrent(alert);
} else if (command == exit) {
destroyApp(false);
notifyDestroyed();
}
}
}
List check box
import javax.microedition.lcdui.Alert;
import javax.microedition.lcdui.AlertType;
import javax.microedition.lcdui.rumand;
import javax.microedition.lcdui.rumandListener;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Displayable;
import javax.microedition.lcdui.List;
import javax.microedition.midlet.MIDlet;
public class J2MEListCheckBox extends MIDlet implements CommandListener {
private Display display;
private Command exit;
private Command submit;
private List list;
public J2MEListCheckBox() {
display = Display.getDisplay(this);
list = new List("Select Media", List.MULTIPLE);
list.append("Books", null);
list.append("Movies", null);
list.append("Television", null);
list.append("Radio", null);
exit = new Command("Exit", Command.EXIT, 1);
submit = new Command("Submit", Command.SCREEN, 2);
list.addCommand(exit);
list.addCommand(submit);
list.setCommandListener(this);
}
public void startApp() {
display.setCurrent(list);
}
public void pauseApp() {
}
public void destroyApp(boolean unconditional) {
}
public void commandAction(Command command, Displayable Displayable) {
if (command == submit) {
boolean choice[] = new boolean[list.size()];
StringBuffer message = new StringBuffer();
list.getSelectedFlags(choice);
for (int x = 0; x < choice.length; x++) {
if (choice[x]) {
message.append(list.getString(x));
message.append(" ");
}
}
Alert alert = new Alert("Choice", message.toString(), null, null);
alert.setTimeout(Alert.FOREVER);
alert.setType(AlertType.INFO);
display.setCurrent(alert);
list.removeCommand(submit);
} else if (command == exit) {
destroyApp(false);
notifyDestroyed();
}
}
}
List radio button
import javax.microedition.lcdui.Alert;
import javax.microedition.lcdui.AlertType;
import javax.microedition.lcdui.rumand;
import javax.microedition.lcdui.rumandListener;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Displayable;
import javax.microedition.lcdui.List;
import javax.microedition.midlet.MIDlet;
public class J2MEListRadioButtons extends MIDlet implements CommandListener {
private Display display;
private Command exit;
private Command submit;
private List list;
public J2MEListRadioButtons() {
display = Display.getDisplay(this);
list = new List("Select one", List.EXCLUSIVE);
list.append("Male", null);
list.append("Female", null);
exit = new Command("Exit", Command.EXIT, 1);
submit = new Command("Submit", Command.SCREEN, 2);
list.addCommand(exit);
list.addCommand(submit);
list.setCommandListener(this);
}
public void startApp() {
display.setCurrent(list);
}
public void pauseApp() {
}
public void destroyApp(boolean unconditional) {
}
public void commandAction(Command command, Displayable Displayable) {
if (command == submit) {
Alert alert = new Alert("Choice", list.getString(list.getSelectedIndex()), null, null);
alert.setTimeout(Alert.FOREVER);
alert.setType(AlertType.INFO);
display.setCurrent(alert);
list.removeCommand(submit);
} else if (command == exit) {
destroyApp(false);
notifyDestroyed();
}
}
}
List with strings and images
import java.io.IOException;
import javax.microedition.lcdui.Alert;
import javax.microedition.lcdui.AlertType;
import javax.microedition.lcdui.rumand;
import javax.microedition.lcdui.rumandListener;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Displayable;
import javax.microedition.lcdui.Image;
import javax.microedition.lcdui.List;
import javax.microedition.lcdui.TextBox;
import javax.microedition.lcdui.TextField;
import javax.microedition.midlet.MIDlet;
public class ListMIDlet extends MIDlet implements CommandListener {
TextBox main;
private Command exitCommand;
private Command exclusiveCommand;
private Command multipleCommand;
private Command implicitCommand;
private Command confirmCommand;
private List aEXCLUSIVEList;
private List aMULTIPLEList;
private List aIMPLICITList;
String[] position = { "1", "2", "3" };
String[] hobby = { "A", "B", "C", "D", "E" };
Image[] positionIcon = { createImage("/1.png"), createImage("/2.png"), createImage("/3.png") };
Image[] hobbyIcon = { createImage("/A.png"), createImage("/B.png"), createImage("/C.png"),
createImage("/D.png"), createImage("/E.png") };
private Display display;
private String currentScreen = "";
public ListMIDlet() {
display = Display.getDisplay(this);
exitCommand = new Command("exit", Command.SCREEN, 1);
exclusiveCommand = new Command("exclusive", Command.SCREEN, 1);
multipleCommand = new Command("multiple", Command.SCREEN, 1);
implicitCommand = new Command("implicit", Command.SCREEN, 1);
confirmCommand = new Command("confirm", Command.SCREEN, 2);
}
public void startApp() {
main = new TextBox("main", null, 256, TextField.ANY);
main.addCommand(exitCommand);
main.addCommand(exclusiveCommand);
main.addCommand(multipleCommand);
main.addCommand(implicitCommand);
main.setCommandListener(this);
display.setCurrent(main);
currentScreen = "Main";
}
public void pauseApp() {
}
public void destroyApp(boolean unconditional) {
}
private Image createImage(String name) {
Image aImage = null;
try {
aImage = Image.createImage(name);
} catch (IOException e) {
}
return aImage;
}
private void exclusiveList() {
aEXCLUSIVEList = new List("exclusive", List.EXCLUSIVE, position, positionIcon);
aEXCLUSIVEList.addCommand(exitCommand);
aEXCLUSIVEList.addCommand(confirmCommand);
aEXCLUSIVEList.setCommandListener(this);
display.setCurrent(aEXCLUSIVEList);
currentScreen = "exclusive";
}
private void multipleList() {
aMULTIPLEList = new List("multiple", List.MULTIPLE, hobby, hobbyIcon);
aMULTIPLEList.addCommand(exitCommand);
aMULTIPLEList.addCommand(confirmCommand);
aMULTIPLEList.setCommandListener(this);
display.setCurrent(aMULTIPLEList);
currentScreen = "multiple";
}
private void implicitList() {
aIMPLICITList = new List("implicit", List.IMPLICIT);
aIMPLICITList.append("A", createImage("/A.png"));
aIMPLICITList.append("B", createImage("/B.png"));
aIMPLICITList.append("C", createImage("/C.png"));
aIMPLICITList.append("D", createImage("/D.png"));
aIMPLICITList.append("E", createImage("/E.png"));
aIMPLICITList.addCommand(exitCommand);
aIMPLICITList.setCommandListener(this);
display.setCurrent(aIMPLICITList);
currentScreen = "implicit";
}
public void commandAction(Command c, Displayable s) {
if (c == exitCommand) {
if (currentScreen == "implicit") {
destroyApp(false);
notifyDestroyed();
} else {
display.setCurrent(main);
currentScreen = "no";
}
}
if (c == exclusiveCommand) {
exclusiveList();
}
if (c == multipleCommand) {
multipleList();
}
if (c == implicitCommand) {
implicitList();
}
if (c == confirmCommand) {
Alert aAlert;
if (currentScreen == "implicit") {
int aIndex = aEXCLUSIVEList.getSelectedIndex();
aAlert = new Alert("Result", position[aIndex], null, AlertType.INFO);
display.setCurrent(aAlert);
}
if (currentScreen == "multiple") {
String result = "result\n";
for (int i = 0; i < aMULTIPLEList.size(); i++)
if (aMULTIPLEList.isSelected(i))
result += hobby[i] + ", ";
aAlert = new Alert("alert", result, null, AlertType.INFO);
aAlert.setTimeout(5000);
display.setCurrent(aAlert);
}
}
if (c == List.SELECT_COMMAND) {
int aIndex = aIMPLICITList.getSelectedIndex();
String menuItem = aIMPLICITList.getString(aIndex);
Alert aAlert = new Alert("imple", menuItem, null, AlertType.INFO);
aAlert.setTimeout(5000);
display.setCurrent(aAlert);
}
}
}
Use List
import java.io.IOException;
import javax.microedition.lcdui.Alert;
import javax.microedition.lcdui.AlertType;
import javax.microedition.lcdui.rumand;
import javax.microedition.lcdui.rumandListener;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Displayable;
import javax.microedition.lcdui.Image;
import javax.microedition.lcdui.List;
import javax.microedition.midlet.MIDlet;
public class J2METravelList extends MIDlet implements CommandListener {
private List mList;
private Command mExitCommand, mNextCommand;
public J2METravelList() {
String[] stringElements = { "A", "C", "H" };
Image[] imageElements = { loadImage("/a.png"), loadImage("/c.png"),
loadImage("/h.png") };
mList = new List("Reservation type", List.IMPLICIT, stringElements, imageElements);
mNextCommand = new Command("Next", Command.SCREEN, 0);
mExitCommand = new Command("Exit", Command.EXIT, 0);
mList.addCommand(mNextCommand);
mList.addCommand(mExitCommand);
mList.setCommandListener(this);
}
public void startApp() {
Display.getDisplay(this).setCurrent(mList);
}
public void commandAction(Command c, Displayable s) {
if (c == mNextCommand || c == List.SELECT_COMMAND) {
int index = mList.getSelectedIndex();
Alert alert = new Alert("Your selection", "You chose " + mList.getString(index) + ".", null,
AlertType.INFO);
Display.getDisplay(this).setCurrent(alert, mList);
} else if (c == mExitCommand)
notifyDestroyed();
}
public void pauseApp() {
}
public void destroyApp(boolean unconditional) {
}
private Image loadImage(String name) {
Image image = null;
try {
image = Image.createImage(name);
} catch (IOException ioe) {
System.out.println(ioe);
}
return image;
}
}
Use List option to hold choice
import javax.microedition.lcdui.Choice;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.List;
import javax.microedition.midlet.MIDlet;
public class PaymentMIDlet extends MIDlet {
private Display display;
List options = new List("Method of Payment", Choice.EXCLUSIVE);
public void startApp() {
display = Display.getDisplay(this);
options.append("Visa", null);
options.append("MasterCard", null);
options.append("Amex", null);
display.setCurrent(options);
}
public void pauseApp() {
}
public void destroyApp(boolean unconditional) {
}
}