Java Tutorial/J2ME/Gauge
Содержание
Add Gauge to a form
<source lang="java">
import javax.microedition.lcdui.Display; import javax.microedition.lcdui.Form; import javax.microedition.lcdui.Gauge; import javax.microedition.midlet.MIDlet; public class GaugeMIDlet extends MIDlet {
protected Display display; protected void startApp() { display = Display.getDisplay(this); Form form = new Form("Demo"); form.append("line"); form.append(new Gauge(null, true, 100, 50)); display.setCurrent(form); } protected void pauseApp() { } protected void destroyApp(boolean unconditional) { }
}</source>
Gauge Interactive
<source lang="java">
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.lcdui.Gauge; import javax.microedition.midlet.MIDlet; public class J2MEGaugeInteractive extends MIDlet implements CommandListener {
private Display display; private Form form; private Command exit; private Command vote; private Gauge gauge; public J2MEGaugeInteractive() { display = Display.getDisplay(this); gauge = new Gauge("Rate the movie: ", true, 5, 1); exit = new Command("Exit", Command.EXIT, 1); vote = new Command("Vote", Command.SCREEN, 1); form = new Form(""); form.addCommand(exit); form.addCommand(vote); form.append(gauge); form.setCommandListener(this); } public void startApp() { display.setCurrent(form); } public void pauseApp() { } public void destroyApp(boolean unconditional) { } public void commandAction(Command command, Displayable displayable) { if (command == exit) { destroyApp(false); notifyDestroyed(); } else if (command == vote) { String msg = String.valueOf(gauge.getValue()); Alert alert = new Alert("Ranking", msg, null, null); alert.setTimeout(Alert.FOREVER); alert.setType(AlertType.INFO); display.setCurrent(alert); } }
}</source>
Gauge Non Interactive
<source lang="java">
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.lcdui.Gauge; import javax.microedition.midlet.MIDlet; import javax.microedition.midlet.MIDletStateChangeException; public class J2MEGaugeNonInteractive extends MIDlet implements CommandListener {
private Display display; private Form form; private Command exit; private Command start; private Gauge gauge; private boolean isSafeToExit; public J2MEGaugeNonInteractive() { display = Display.getDisplay(this); gauge = new Gauge("Progress Tracking", false, 100, 0); exit = new Command("Exit", Command.EXIT, 1); start = new Command("Start", Command.SCREEN, 1); form = new Form(""); form.append(gauge); form.addCommand(start); form.addCommand(exit); form.setCommandListener(this); isSafeToExit = true; } public void startApp() { display.setCurrent(form); } public void pauseApp() { } public void destroyApp(boolean unconditional) throws MIDletStateChangeException { } public void commandAction(Command command, Displayable displayable) { if (command == exit) { try { destroyApp(isSafeToExit); notifyDestroyed(); } catch (MIDletStateChangeException Error) { Alert alert = new Alert("Busy", "Please try again.", null, AlertType.WARNING); alert.setTimeout(1500); display.setCurrent(alert, form); } } else if (command == start) { form.removeCommand(start); new Thread(new GaugeUpdater()).start(); } } class GaugeUpdater implements Runnable { public void run() { isSafeToExit = false; try { while (gauge.getValue() < gauge.getMaxValue()) { Thread.sleep(1000); gauge.setValue(gauge.getValue() + 1); } isSafeToExit = true; gauge.setLabel("Process Completed."); } catch (InterruptedException Error) { throw new RuntimeException(Error.getMessage()); } } }
}</source>
Gauge Tracker
<source lang="java">
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.lcdui.Gauge; import javax.microedition.lcdui.Item; import javax.microedition.lcdui.ItemStateListener; import javax.microedition.lcdui.StringItem; import javax.microedition.midlet.MIDlet; public class J2MEGaugeTracker extends MIDlet implements ItemStateListener, CommandListener {
private Gauge mGauge = new Gauge("GaugeTitle", true, 5, 3); private StringItem mStringItem = new StringItem(null, "[value]"); public J2MEGaugeTracker() { itemStateChanged(mGauge); } public void itemStateChanged(Item item) { if (item == mGauge) mStringItem.setText("Value = " + mGauge.getValue()); } public void commandAction(Command c, Displayable s) { if (c.getCommandType() == Command.EXIT) notifyDestroyed(); } public void startApp() { Form form = new Form("GaugeTracker"); form.addCommand(new Command("Exit", Command.EXIT, 0)); form.setCommandListener(this); form.append(mGauge); form.append(mStringItem); form.setItemStateListener(this); Display.getDisplay(this).setCurrent(form); } public void pauseApp() { } public void destroyApp(boolean unconditional) { }
}</source>
new Gauge(null, false,
<source lang="java">
import javax.microedition.lcdui.Display; import javax.microedition.lcdui.Form; import javax.microedition.lcdui.Gauge; import javax.microedition.midlet.MIDlet; public class GaugeFalseMIDlet extends MIDlet {
protected Display display; protected void startApp() { display = Display.getDisplay(this); Form form = new Form("Demo"); form.append("line"); form.append(new Gauge(null, false, 100, 50)); display.setCurrent(form); } protected void pauseApp() { } protected void destroyApp(boolean unconditional) { }
}</source>
Use active and inactive Gauge
<source lang="java">
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.lcdui.Gauge; import javax.microedition.midlet.MIDlet; public class J2MEActiveInactiveGaugeMIDlet extends MIDlet implements CommandListener {
private Command exitCommand = new Command("exit", Command.EXIT, 1); private Gauge activeGauge = new Gauge("active:", true, 10, 2); private Gauge inactiveGauge = new Gauge("inactive:", false, 10, 4); private Display display = Display.getDisplay(this); public void startApp() { Form aForm = new Form("Gauge"); aForm.append(activeGauge); aForm.append(inactiveGauge); aForm.addCommand(exitCommand); aForm.setCommandListener(this); display.setCurrent(aForm); } public void pauseApp() { } public void destroyApp(boolean unconditional) { } public void commandAction(Command c, Displayable s) { if (c == exitCommand) { destroyApp(false); notifyDestroyed(); } }
}</source>