Java Tutorial/J2ME/Alert
Версия от 17:44, 31 мая 2010; (обсуждение)
Alarm alert, confirmation alert, error alert, info alert, warning alert
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.TextBox;
import javax.microedition.lcdui.TextField;
import javax.microedition.midlet.MIDlet;
public class FewAlertsMIDlet extends MIDlet implements CommandListener {
private Command exitCommand = new Command("exit", Command.SCREEN, 1);
private Command alarmCommand = new Command("alarm", Command.SCREEN, 2);
private Command confirmCommand= new Command("confirm", Command.SCREEN, 2);
private Command errorCommand = new Command("error", Command.SCREEN, 2);
private Command infoCommand = new Command("info", Command.SCREEN, 2);
private Command warningCommand = new Command("warning", Command.SCREEN, 2);
private Alert alarmAlert = new Alert("alarm",null,null, AlertType.ALARM);
private Alert confirmAlert = new Alert("confirm", null,null, AlertType.CONFIRMATION);
private Alert errorAlert = new Alert("error", null, null,AlertType.ERROR);
// private Alert infoAlert = new Alert("info", null,infoImage, AlertType.INFO);
private Alert warningAlert = new Alert("warning",null, null, AlertType.WARNING);
private Display display = Display.getDisplay(this);
public FewAlertsMIDlet() {
}
public void startApp() {
TextBox main = new TextBox("","",26,TextField.ANY);
Image infoImage = null;
try {
infoImage = Image.createImage("/a.png");
} catch (IOException e) {
}
alarmAlert.setTimeout(Alert.FOREVER);
confirmAlert.setTimeout(3000);
errorAlert.setTimeout(3000);
// infoAlert.setTimeout(3000);
warningAlert.setTimeout(3000);
main.addCommand(exitCommand);
main.addCommand(alarmCommand);
main.addCommand(confirmCommand);
main.addCommand(errorCommand);
main.addCommand(infoCommand);
main.addCommand(warningCommand);
main.setCommandListener(this);
display.setCurrent(main);
}
public void pauseApp() {
}
public void destroyApp(boolean unconditional) {
}
public void commandAction(Command c, Displayable s) {
if (c == exitCommand) {
destroyApp(false);
notifyDestroyed();
}
if (c == alarmCommand) {
display.setCurrent(alarmAlert);
}
if (c == confirmCommand) {
display.setCurrent(confirmAlert);
}
if (c == errorCommand) {
display.setCurrent(errorAlert);
}
// if (c == infoCommand) {
// display.setCurrent(infoAlert);
// }
if (c == warningCommand) {
display.setCurrent(warningAlert);
}
}
}
Set alert time out
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.Form;
import javax.microedition.midlet.MIDlet;
import javax.microedition.midlet.MIDletStateChangeException;
public class J2MEDisplayAlert extends MIDlet implements CommandListener {
private Display display;
private Alert alert;
private Form form;
private Command exit;
private boolean exitFlag;
public J2MEDisplayAlert() {
exitFlag = false;
display = Display.getDisplay(this);
exit = new Command("Exit", Command.SCREEN, 1);
form = new Form("Throw Exception");
form.addCommand(exit);
form.setCommandListener(this);
}
public void startApp() {
display.setCurrent(form);
}
public void pauseApp() {
}
public void destroyApp(boolean unconditional) throws MIDletStateChangeException {
if (unconditional == false) {
throw new MIDletStateChangeException();
}
}
public void commandAction(Command command, Displayable displayable) {
if (command == exit) {
try {
if (exitFlag == false) {
alert = new Alert("Busy", "Please try again.", null, AlertType.WARNING);
alert.setTimeout(Alert.FOREVER);
display.setCurrent(alert, form);
destroyApp(false);
} else {
destroyApp(true);
notifyDestroyed();
}
} catch (MIDletStateChangeException exception) {
exitFlag = true;
}
}
}
}
Two alerts
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.TextBox;
import javax.microedition.lcdui.TextField;
import javax.microedition.midlet.MIDlet;
public class J2METwoAlerts extends MIDlet implements CommandListener {
private Display mDisplay;
private TextBox mTextBox= new TextBox("TwoAlerts", "", 32, TextField.ANY);
private Alert mTimedAlert = new Alert("Network error", "error occurred", null, AlertType.INFO);
private Alert mModalAlert= new Alert("About TwoAlerts","Alerts.", null, AlertType.INFO);
private Command mAboutCommand, mGoCommand, mExitCommand;
public J2METwoAlerts() {
mAboutCommand = new Command("About", Command.SCREEN, 1);
mGoCommand = new Command("Go", Command.SCREEN, 1);
mExitCommand = new Command("Exit", Command.EXIT, 2);
mTextBox.addCommand(mAboutCommand);
mTextBox.addCommand(mGoCommand);
mTextBox.addCommand(mExitCommand);
mTextBox.setCommandListener(this);
mModalAlert.setTimeout(Alert.FOREVER);
}
public void startApp() {
mDisplay = Display.getDisplay(this);
mDisplay.setCurrent(mTextBox);
}
public void pauseApp() {
}
public void destroyApp(boolean unconditional) {
}
public void commandAction(Command c, Displayable s) {
if (c == mAboutCommand)
mDisplay.setCurrent(mModalAlert);
else if (c == mGoCommand)
mDisplay.setCurrent(mTimedAlert, mTextBox);
else if (c == mExitCommand)
notifyDestroyed();
}
}