Java Tutorial/J2ME/List

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

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