Java/J2ME/Form

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

Change Label Text

   <source lang="java">

/*--------------------------------------------------

  • ChangeLabelText.java
  • Example from the book: Core J2ME Technology
  • Copyright John W. Muchow http://www.CoreJ2ME.ru
  • You may use/modify for any non-commercial purpose
  • -------------------------------------------------*/

import javax.microedition.midlet.*; import javax.microedition.lcdui.*; public class ChangeLabelText extends MIDlet implements CommandListener {

 private Display display;      // Reference to Display object
 private Form fmMain;          // The main form
 private StringItem siUser;    // The message
 private Command cmNext;       // Next label and message
 private Command cmExit;       // Command to exit the MIDlet
 public ChangeLabelText()
 {
   display = Display.getDisplay(this);
   // Create text message and commands
   siUser = new StringItem("UserId: ", "johnm");
   cmNext = new Command("Next", Command.SCREEN, 1);
   cmExit = new Command("Exit", Command.EXIT, 1);
   // Create Form, add Command & StringItem, listen for events
   fmMain = new Form("Preferences");    
   fmMain.addCommand(cmExit);
   fmMain.addCommand(cmNext);    
   fmMain.append(siUser);
   fmMain.setCommandListener(this);   
 }
 // Called by application manager to start the MIDlet.
 public void startApp()
 {
   display.setCurrent(fmMain);
 }
 public void pauseApp()
 { }
 
 public void destroyApp(boolean unconditional)
 { }
 public void commandAction(Command c, Displayable s)
 {
   if (c == cmNext)
   {
     // This method is inherited from the Item class
     siUser.setLabel("Account #: ");
     
     // Change the text
     siUser.setText("731");           
     
     // Remove the Next command
     fmMain.removeCommand(cmNext);
   }
   else if (c == cmExit)
   {
     destroyApp(false);
     notifyDestroyed();
   } 
 }

}


      </source>
   
  
 
  



Create Form With Items

   <source lang="java">

//jad file (please verify the jar size) /* MIDlet-Name: CreatingFormWithItems MIDlet-Version: 1.0 MIDlet-Vendor: MyCompany MIDlet-Jar-URL: CreatingFormWithItems.jar MIDlet-1: CreatingFormWithItems, , CreatingFormWithItems MicroEdition-Configuration: CLDC-1.0 MicroEdition-Profile: MIDP-1.0 MIDlet-JAR-SIZE: 100

  • /

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.StringItem; import javax.microedition.midlet.MIDlet; public class CreatingFormWithItems extends MIDlet implements CommandListener {

 private Display display;
 private Form form;
 private Command exit = new Command("Exit", Command.SCREEN, 1);
 public CreatingFormWithItems() {
   display = Display.getDisplay(this);
   StringItem messages[] = new StringItem[] { new StringItem("Welcome, ", "glad you could come."),
       new StringItem("Hello, ", "Mary.") };
   form = new Form("Display Form with Items", messages);
   form.addCommand(exit);
   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(true);
     notifyDestroyed();
   }
 }

}

      </source>
   
  
 
  



Display Stats

   <source lang="java">

/*--------------------------------------------------

  • DisplayStats.java
  • Example from the book: Core J2ME Technology
  • Copyright John W. Muchow http://www.CoreJ2ME.ru
  • You may use/modify for any non-commercial purpose
  • -------------------------------------------------*/

import javax.microedition.midlet.*; import javax.microedition.lcdui.*; public class DisplayStats extends MIDlet implements CommandListener {

 private Display display;             // Reference to Display object
 private Form fmMain;                 // A Form 
 private Alert alTest;                // An Alert
 private Command cmExit;              // A Command to exit the MIDlet

 public DisplayStats()
 {
   display = Display.getDisplay(this);
   
   cmExit = new Command("Exit", Command.SCREEN, 1);
   fmMain = new Form("Welcome");
   fmMain.addCommand(cmExit);
   fmMain.setCommandListener(this);
   System.out.println("Display " + (display.isColor() ? "does" : "does not") + " support Color");
   System.out.println("Number of colors: " + display.numColors());
 }
 // Called by application manager to start the MIDlet.
 public void startApp()
 {
   alTest = new Alert("Alert", "This alert screen will be followed by the main form", null, null);
   alTest.setTimeout(Alert.FOREVER);
   display.setCurrent(alTest, fmMain);
 }
 // We are about to be placed in the Paused state
 public void pauseApp()
 {
 }
 // We are about to enter the Destroyed state
 public void destroyApp(boolean unconditional)
 {
 }
 // Check to see if the Exit command was selected
 public void commandAction(Command c, Displayable s)
 {
   if (c == cmExit)
   {
     destroyApp(true);
     notifyDestroyed();
   }
 }

}


      </source>
   
  
 
  



Form Example MIDlet

   <source lang="java">

/* J2ME in a Nutshell By Kim Topley ISBN: 0-596-00253-X

  • /

import javax.microedition.lcdui.Display; import javax.microedition.lcdui.Form; import javax.microedition.lcdui.StringItem; import javax.microedition.lcdui.TextField; import javax.microedition.midlet.MIDlet; public class FormExampleMIDlet extends MIDlet {


   // The MIDlet"s Display object
   protected Display display;
   
   // Flag indicating first call of startApp
   protected boolean started;
   
   protected void startApp() {
       if (!started) {
           display = Display.getDisplay(this);
           
           Form form = new Form("Item Layout");
           
           form.append("Hello");
           form.append("World");
           
           form.append("\nLet"s start\na new line\n");
           form.append("This is quite a long string that may not fit on one line");
           
           form.append(new TextField("Name", "J. Doe", 32, TextField.ANY));
           form.append("Address");
           form.append(new TextField(null, null, 32, TextField.ANY));            
           
           display.setCurrent(form);
           
           started = true;
       }
   }
   protected void pauseApp() {
   }
   protected void destroyApp(boolean unconditional) {
   }

}


      </source>
   
  
 
  



Form Juggle

   <source lang="java">

/*--------------------------------------------------

  • FormJuggle.java
  • Show how a Form component handles inserting and
  • setting (replacing) Items
  • Example from the book: Core J2ME Technology
  • Copyright John W. Muchow http://www.CoreJ2ME.ru
  • You may use/modify for any non-commercial purpose
  • -------------------------------------------------*/

import javax.microedition.midlet.*; import javax.microedition.lcdui.*; public class FormJuggle extends MIDlet implements CommandListener {

 private Display display;      // Reference to display object 
 private Form fmMain;          // The main form
 private Command cmInsert;     // Command to insert items
 private DateField dfDate;     // Display date
 private TextField tfSize;     // Product size
 private TextField tfQuantity; // Product quantity
 private int dateIndex;        // Index of dfDate 
 public FormJuggle()
 {
   display = Display.getDisplay(this);
   // Create the date and populate with current date
   dfDate = new DateField("", DateField.DATE);
   dfDate.setDate(new java.util.Date());
   // Define two textfields and two commands
   tfSize = new TextField("Size", "Large", 5, TextField.ANY); 
   tfQuantity = new TextField("Quantity:", "3", 2, TextField.NUMERIC); 
   cmInsert = new Command("Insert", Command.SCREEN, 1);
   // Create the form, add insert command
   fmMain = new Form("Form Stuff");
   fmMain.addCommand(cmInsert);
 
   // Append date to form & save index value where it was inserted
   dateIndex = fmMain.append(dfDate);
   // Capture events
   fmMain.setCommandListener(this);    
 }
 // Called by application manager to start the MIDlet.
 public void startApp()
 {
   display.setCurrent(fmMain);
 }
 public void pauseApp()
 { }
 
 public void destroyApp(boolean unconditional)
 { }
 public void commandAction(Command c, Displayable s)
 {
   if (c == cmInsert)
   {
     // One item on form, insert textfield prior to datefield
     if (fmMain.size() == 1)
     {
       fmMain.insert(dateIndex, tfQuantity);     
       dateIndex += 1;   // Date index has changed, update it
     }
     // If two items and last item is datefield, replace it
     else if (fmMain.size() == 2 && fmMain.get(1) == dfDate)
       fmMain.set(dateIndex, tfSize);
   }
 }

}


      </source>
   
  
 
  



Form Scroll

   <source lang="java">

/*--------------------------------------------------

  • FormScroll.java
  • Show how a Form component handles scrolling
  • when multiple Items are on the display
  • Copyright John W. Muchow http://www.CoreJ2ME.ru
  • You may use/modify for any non-commercial purpose
  • -------------------------------------------------*/

import javax.microedition.midlet.*; import javax.microedition.lcdui.*; public class FormScroll extends MIDlet implements CommandListener {

 private Display display;      // Reference to display object 
 private Form frmMain;         // The main form
 private Command cmdExit;      // Command to exit
 private TextField txfSize;    // Product size
 private ChoiceGroup chgEmail; // Choice group
 private Gauge gauVolume;      // Volume
 public FormScroll()
 {
   display = Display.getDisplay(this);
   // Create TextField
   txfSize = new TextField("Size", "Large", 5, TextField.ANY); 
   
   // Create an exclusive (radio) choice group, and append entries
   chgEmail = new ChoiceGroup("Email Options", Choice.EXCLUSIVE);
   chgEmail.append("Read", null);
   chgEmail.append("Forward", null);    
   chgEmail.append("Delete", null);    
   // Create the gauge
   gauVolume = new Gauge("Sound Level", true, 30, 4);
   
   cmdExit = new Command("Exit", Command.EXIT, 1);
   // Create the form
   frmMain = new Form("Form Stuff");
   frmMain.append(txfSize);
   frmMain.append(chgEmail);
   frmMain.append(gauVolume);    
   frmMain.addCommand(cmdExit);
 
   // Capture events
   frmMain.setCommandListener(this);    
 }
 // Called by application manager to start the MIDlet.
 public void startApp()
 {
   display.setCurrent(frmMain);
 }
 public void pauseApp()
 { }
 
 public void destroyApp(boolean unconditional)
 { }
 public void commandAction(Command c, Displayable s)
 {
   if (c == cmdExit)
   {
     destroyApp(false);
     notifyDestroyed();
   }
 }

}


      </source>
   
  
 
  



Read Display File

   <source lang="java">

/*--------------------------------------------------

  • ReadDisplayFile.java
  • Example from the book: Core J2ME Technology
  • Copyright John W. Muchow http://www.CoreJ2ME.ru
  • You may use/modify for any non-commercial purpose
  • -------------------------------------------------*/

import javax.microedition.midlet.*; import javax.microedition.lcdui.*; import java.io.*; public class ReadDisplayFile extends MIDlet implements CommandListener {

 private Display display;    // Reference to Display object
 private Form fmMain;       // Main form
 private Command cmHelp;    // Command to show a help file
 private Command cmExit;    // Command to exit the MIDlet
 private Alert alHelp;      // Alert to display help file text
 public ReadDisplayFile()
 {
   display = Display.getDisplay(this);
   
   cmHelp = new Command("Help", Command.SCREEN, 1);
   cmExit = new Command("Exit", Command.EXIT, 1);    
   
   fmMain = new Form("Read File");
   fmMain.addCommand(cmExit);
   fmMain.addCommand(cmHelp);
   fmMain.setCommandListener(this);
 }
 public void startApp()
 {
   display.setCurrent(fmMain);
 }
 public void pauseApp()
 { }
 public void destroyApp(boolean unconditional)
 { }
 public void commandAction(Command c, Displayable s)
 {
   if (c == cmHelp)
   {
     String str;
     // Access the resource and read its contents
     if ((str = readHelpText()) != null)
     {
       // Create an Alert to display the help text        
       alHelp = new Alert("Help", str, null, null);
       alHelp.setTimeout(Alert.FOREVER);
       display.setCurrent(alHelp, fmMain);
     }
   }
   else if (c == cmExit)
   {
     destroyApp(false);
     notifyDestroyed();
   } 
 }
 
 private String readHelpText()
 {
   InputStream is = getClass().getResourceAsStream("help.txt");
   try 
   {
     StringBuffer sb = new StringBuffer();
     int chr, i = 0;
     // Read until the end of the stream      
     while ((chr = is.read()) != -1)
         sb.append((char) chr);
     return sb.toString();
   }
   catch (Exception e)
   {         
     System.out.println("Unable to create stream");
   }
   return null;
 }

}


      </source>
   
  
 
  



Verify Area Code

   <source lang="java">

/*--------------------------------------------------

  • VerifyAreaCode.java
  • Example from the book: Core J2ME Technology
  • Copyright John W. Muchow http://www.CoreJ2ME.ru
  • You may use/modify for any non-commercial purpose
  • -------------------------------------------------*/

import javax.microedition.midlet.*; import javax.microedition.lcdui.*; public class VerifyAreaCode extends MIDlet implements CommandListener {

 private Display display;      // Reference to Display object
 private Form fmMain;         // The main form
 private Command cmTest;      // Next label and message
 private Command cmExit;      // Command to exit the MIDlet
 private TextField tfPhone;   // Phone number
 private String areaCodeTable [][] = {
                                   {"512", "912"}, // Old area code, new area code
                                   {"717", "917"} };   
   
 public VerifyAreaCode()
 {
   display = Display.getDisplay(this);
   // Create commands
   cmTest = new Command("Test", Command.SCREEN, 1);
   cmExit = new Command("Exit", Command.EXIT, 1);
   // Textfield for phone number
   tfPhone = new TextField("Phone:", "", 10, TextField.PHONENUMBER);
   // Create Form, add Commands & textfield, listen for events
   fmMain = new Form("Area Codes");    
   fmMain.addCommand(cmExit);
   fmMain.addCommand(cmTest);    
   fmMain.append(tfPhone);
   fmMain.setCommandListener(this);   
 }
 // Called by application manager to start the MIDlet.
 public void startApp()
 {
   display.setCurrent(fmMain);
 }
 public void pauseApp()
 { }
 
 public void destroyApp(boolean unconditional)
 { }
 public void commandAction(Command c, Displayable s)
 {
   if (c == cmTest)
   {
     if (tfPhone.size() == 10)
     {
       char buffer[] = new char[10];
       // Get phone number into byte array         
       tfPhone.getChars(buffer);
       // Call method to check the area code table.
       // Create a new StringItem to display, 
       // passing in "null" as the StringItem
       StringItem tmp = new StringItem(null, ("The area code " + (areaCodeLookup(buffer) ? "has" : "has not") + " been updated."));
       
       // Place at the end of the form
       if (fmMain.size() == 1)  // Only tfPhone on form
         fmMain.append(tmp);
       else                      // Replace previous StringItem
         fmMain.set(1, tmp);
     }
   }
   else if (c == cmExit)
   {
     destroyApp(false);
     notifyDestroyed();
   } 
 }
 /*--------------------------------------------------
 * Compare the area code the user entered with the 
 * area code table. If a match is found, replace
 * the user"s code with the new code from the table
 *-------------------------------------------------*/  
 private boolean areaCodeLookup(char [] buffer)
 {
   // Get the area code (only) from the users entry
   String str = new String(buffer, 0, 3);
   
   for (int x = 0; x < areaCodeTable.length; x++)
   {
     // If we find a match in the table
     if (str.equals(areaCodeTable[x][0]))
     {
       // Delete the area code
       tfPhone.delete(0, 3);
       
       // Insert the new area code
       tfPhone.insert(areaCodeTable[x][1].toCharArray(), 0, 3, 0);
       return true;
     }
   }
   return false;
 }

}


      </source>