Java Tutorial/J2ME/Gauge

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

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>