📄 itemmidlet.java
字号:
package ora.ch4;import java.io.IOException;import java.util.Calendar;import java.util.Date;import javax.microedition.lcdui.Alert;import javax.microedition.lcdui.AlertType;import javax.microedition.lcdui.Choice;import javax.microedition.lcdui.ChoiceGroup;import javax.microedition.lcdui.Command;import javax.microedition.lcdui.CommandListener;import javax.microedition.lcdui.DateField;import javax.microedition.lcdui.Display;import javax.microedition.lcdui.Displayable;import javax.microedition.lcdui.Form;import javax.microedition.lcdui.Gauge;import javax.microedition.lcdui.Image;import javax.microedition.lcdui.ImageItem;import javax.microedition.lcdui.Item;import javax.microedition.lcdui.ItemStateListener;import javax.microedition.lcdui.List;import javax.microedition.lcdui.Screen;import javax.microedition.lcdui.StringItem;import javax.microedition.lcdui.TextField;import javax.microedition.midlet.MIDlet;public class ItemMIDlet extends MIDlet implements CommandListener, ItemStateListener { // The MIDlet's Display object private Display display; // Flag indicating first call of startApp protected boolean started; // Exit command private Command exitCommand; // Back to examples list command private Command backCommand; // The example selection list private List examplesList; // The Screens used to demonstrate different Items private Screen[] screens; // The example names. Used to populate the list. private String[] examples = { "StringItem", "TextField", "DateField", "ImageItem", "Gauge", "ChoiceGroup", "List", "Alert", "Sounds" }; // List of alert types private AlertType[] alertTypes = new AlertType[] { AlertType.ALARM, AlertType.CONFIRMATION, AlertType.ERROR, AlertType.INFO, AlertType.WARNING, null }; private String[] alertTypeNames = new String[] { "ALARM", "CONFIRMATION", "ERROR", "INFO", "WARNING", "None" }; protected void startApp() { if (!started) { started = true; display = Display.getDisplay(this); // Create the common commands createCommands(); // Create the screens createScreens(); // Create the list of examples createList(); // Start with the List display.setCurrent(examplesList); } } protected void pauseApp() { } protected void destroyApp(boolean unconditional) { } public void commandAction(Command c, Displayable d) { if (d == examplesList) { // New example selected int index = examplesList.getSelectedIndex(); display.setCurrent(screens[index]); } else if (c == exitCommand) { // Exit. No need to call destroyApp // because it is empty. notifyDestroyed(); } else if (c == backCommand) { // Go back to main selection list display.setCurrent(examplesList); } else if (c == List.SELECT_COMMAND) { // Selection made in the IMPLICIT LIST handleChoiceSelection((Choice)d); } } public void itemStateChanged(Item item) { if (item instanceof TextField) { System.out.println("Text field content: <" + ((TextField)item).getString() + ">"); } else if (item instanceof DateField) { DateField df = (DateField)item; Date date = df.getDate(); if (date != null) { Calendar cal = Calendar.getInstance(); cal.setTime(date); System.out.println("Date field content set to " + date); } else { System.out.println("Date field content set to null"); } } else if (item instanceof Gauge) { int value = ((Gauge)item).getValue(); System.out.println("Gauge value set to " + value); } else if (item instanceof ChoiceGroup) { handleChoiceSelection((Choice)item); } else { System.out.println("Item state changed in " + item); } } private void createCommands() { exitCommand = new Command("Exit", Command.EXIT, 0); backCommand = new Command("Back", Command.BACK, 1); } private void createList() { examplesList = new List("Select Example", List.IMPLICIT); for (int i = 0; i < examples.length; i++) { examplesList.append(examples[i], null); } examplesList.setCommandListener(this); } private void createScreens() { screens = new Screen[examples.length]; screens[0] = createStringsForm(); screens[1] = createTextFieldForm(); screens[2] = createDateFieldForm(); screens[3] = createImageItemForm(); screens[4] = createGaugeForm(); screens[5] = createChoiceGroupForm(); screens[6] = createListExample(); screens[7] = createAlertForm(); screens[8] = createSoundsForm(); } private void addCommands(Displayable d) { d.addCommand(exitCommand); d.addCommand(backCommand); d.setCommandListener(this); if (d instanceof Form) { ((Form)d).setItemStateListener(this); } } // Example for StringItem private Form createStringsForm() { Form form = new Form("StringItem"); form.append(new StringItem("State ", "OK")); form.append(new StringItem(null, "No label\n")); form.append(new StringItem(null, "Line\nbreak")); form.append(new StringItem("Label", "Text.")); form.append(new StringItem("Label2 ", "Text2.")); addCommands(form); return form; } // Example for TextField private Form createTextFieldForm() { Form form = new Form("TextField"); form.append(new TextField("Any", null, 8, TextField.ANY)); form.append(new TextField("Phone", "1234567890", 10, TextField.PHONENUMBER)); form.append(new TextField("Number", "12345", 8, TextField.NUMERIC)); form.append(new TextField("Password", null, 8, TextField.PASSWORD | TextField.NUMERIC)); addCommands(form); return form; } // Example for DateField private Form createDateFieldForm() { Form form = new Form("DateField"); // Get Calendar for the epoch date and time Calendar baseCal = Calendar.getInstance(); Date baseDate = new Date(0); baseCal.setTime(baseDate); // Get Calendar for now and use the epoch // values to reset the date to the epoch. Calendar cal = Calendar.getInstance(); Date now = new Date(); cal.setTime(now); cal.set(Calendar.YEAR, baseCal.get(Calendar.YEAR)); cal.set(Calendar.MONTH, baseCal.get(Calendar.MONTH)); cal.set(Calendar.DATE, baseCal.get(Calendar.DATE)); DateField timeOnly = new DateField("Time", DateField.TIME); DateField dateOnly = new DateField("Date", DateField.DATE); DateField both = new DateField("Both", DateField.DATE_TIME); timeOnly.setDate(cal.getTime()); dateOnly.setDate(now); both.setDate(now); form.append(timeOnly); form.append(dateOnly); form.append(both); addCommands(form); return form; } // Example for ImageItem private Form createImageItemForm() { Form form = new Form("ImageItem"); try { Image red = Image.createImage("/ora/ch4/resources/red.png"); Image blue = Image.createImage("/ora/ch4/resources/blue.png"); // ImageItems with labels // (1) form.append(new ImageItem("Center", red, ImageItem.LAYOUT_CENTER, null)); // (2) form.append(new ImageItem("Left", red, ImageItem.LAYOUT_LEFT, null)); // (3)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -