#FF0000 14  2007 . - #000655    
#00FF00 1.  J2ME
#def ,      
      80-,           .              ,         ,         .       ,     .           .       . ,              ,    ,          .      ,          Java 2 Platform Micro Edition (J2ME). 

  J2ME :      ,        Java  (VJM). VJM       .  ,             .  , VJM   ,           . 

  VJM       .    J2ME         (   CDLC 1.1),      .      ,    ,        java . 
2.  

      (   J2ME    )    : 
Java 2 Standard Edition (J2SE) SDK version 1.4.2   -      Java ; 
J2ME Wireless Toolkit (WTK) 2.2 -         ; 
   IDE.

        : http://java.sun.com/products/, www.netbeans.org  http://www.mobilab.ru/soft/. 
2.1   

 WTK KToolbar.        File>New Project.      "Project Name"  "MIDlet Class Name". , , SampleSuite  SampleMIDlet.          .   ,    OK.   [WTK]\apps\     SampleSuite.      : 
bin -   .jar  .jad    ; 
lib -      ; 
res -   (, .png, .txt); 
src -  .java    ; 

 .java        .  ,   Java    . 
2.2    

   ,  ,   .     ,     .       (, UIDemo).      ,    ( Build),    Run   . 

    ,   .         Project>Package.   bin    .jar  .jad.  jar  Java ,   ,  jad -    .       .        .        . 
3.  

            .         -  ,    .          .        ,  AMS (Application-Management Software). 

 Java  ,        main().  J2ME   .     startApp(). 

       : paused:  ,   ; active:    destroyed:      . 

   .        paused.      ,    .             startApp().      , AMS   startApp(),       active.     - ,    javax.microedition.midlet.MIDletStateChangeException,      destroyed. 

   AMS          paused.   AMS   pauseApp().        destroyed   , AMS   destroyApp(). 

          .       AMS,    : notifyDestroyed() -    ; notifyPaused() -        ; resumeRequest() -        . AMS ,    ,   ,    .   resumeRequest() ASM   startApp().    notifyPaused()  notifyDestroyed() AMS      . 

    -.     -          . 
// SampleMIDlet.java
import javax.microedition.lcdui.*;
import javax.microedition.midlet.*;
 
public class SampleMIDlet extends MIDlet {
    private Display display;
    public SampleMIDlet(){}
 
    protected void destroyApp( boolean unconditional ) throws MIDletStateChangeException 
     {
       exitApp(); //   
      }
 
    protected void pauseApp()
     {
         //    ,    
         //      .
     }
 
    protected void startApp() throws MIDletStateChangeException
     {
         if( display == null )
              { 
                 //      
                  initApp(); 
              }  
         //    ,    
         //      .
     }
 
    private void initApp()
     {
         display = Display.getDisplay( this );
         //     
     }
 
    public void exitApp()
     {
         //    ,    
             //   .
         notifyDestroyed(); //  MIDlet-
     }
}
4.    

  J2ME   javax.microedition.lcdui,      .      .        . ,      ,          . 

         :     . 
4.1  

     : Alert, TextBox, List  Form. 

Alert -   .     :  ,  ,     (ALARM, CONFIRMANTION, ERROR, INFO, WARNING).    setTimeout    ( ),     . 
Alert myAlert = new Alert(" ","",image,AlerType.ALARM);
myAlert.setTimeout(1000);

TextBox - - .   ,    ,  ,     .      : ANY -    , EMAILADDR -  e-mail , NUMERIC -  , PASSWORD -  , PHONENUMBER -   , URL  URL . 

        getChars(char[] chAr),        chAr;  getString(),   .    size()     . 
TextBox myTb= new TextBox(" ", "", 255,TextBox.ANY);
...
String strRes=myTb.getString();

List - - .      :  ,  ,        .     ,         append(String str, Image img). 

 J2ME    .  EXCLUSIVE        ( TRadioButton  Delphi); MULTIPLE      ( TCheckBox); IMPLICIT       (c TListBox). 

 ,      ,      . getSelectedIndex() -    . getSelectedFlags(boolean[] selArr) -     selArr    . 
String st={" 1", " 2", " 3"};
List myList=new List("",Choice.IMPLICIT,st,null);
...
int index=myList.getSelectedIndex();

Form.  -  ,       .        ,    .        append().         ,  ,       Item. 

ChoiceGroup -    .    List.   List    EXCLISIVE  MULTIPLE .   IMPLICIT   POPUP,       . 

DateField -       .      : ,   (DATE, TIME  DATE_TIME)   .    . 

TextField -    .      TextBox, ,    ,    . 

StringItem -         ,   .      : -,     .      : BUTTON -   , HYPERLINK -  , LAYOUT_BOTTOM, LAYOUT_CENTER, LAYOUT_TOP, LAYOUT_LEFT, LAYOUT_RIGHT -      . 

Spacer -        .       .          . 

ImageItem -       .      :   ,   Image   ,   (LAYOUT_LEFT, LAYOUT_RIGHT, LAYOUT_CENTER),     .      StringItem     . 

J2ME        PNG.         res.          try{}catch{} ,        .        Image.createImage("/.png"). 

Guage -     .      : ,   boolean,        ; ,   ,   .       setValue(int value). 

  ,    TextBox, List  Form      .       Tricker    setTricker ,      . 
ChoiceGroup myCG=new ChoiceGroup("",Choice.POPUP);
DateField myDF=new DateField("  ",DateField.DATE_TIME);
TextField myTF=new TextField(" ", "", 20,TextField.ANY);
StringItem mySI1=new StringItem("...", "  ");
StringItem mySI2=new StringItem("URL",
"www.MobiLab.ru",Item.HYPERLINK);
StringItem mySI3=new StringItem("OK", "", Item.BUTTON);
Spacer mySp=new Spacer(50,0);
Gauge myG=new Gauge(" ",true,100,45);
try{
Image img=Image.createImage("/mobilab.png");
ImageItem myII=new
ImageItem("",img,ImageItem.LAYOUT_CENTER,"www.mobilab.ru");
myForm.append(myII);
}catch(java.io.IOException ex){}
myForm.append(myCG);
myForm.append(myDF);
myForm.append(mySp);
myForm.append(myTF);
myForm.append(mySp);
myForm.append(mySI1);
myForm.append(mySI2);
myForm.append(mySI3);
myForm.append(myG);
Tricker myTR=new Tricker("  ...");
myForm.setTricker(myTR);
4.2    

      Display.setCurrent(Displayable d).     -  .     , : 1.  ;
2.       ;
3.      ,   ;
4.   commandAction     ;

       Command 
private Command MyCommand=new Command(" ",Command.SCREEN,2);

     ,  -  ,  -  .      : BACK, CANCEL, EXIT, HELP, ITEM, OK, SCREEN, STOP.            . 

       Displayable.addCommand(Command cmd),       - Item.setDefaultCommand(Command cmd). 

     ,       .   ,       ,     ,     .  ,      ,    . ,       EXIT,        . 

   ,      CommandListener  ItemCommandListener: 
 public class Navigator extends MIDlet implements CommandListener, ItemCommandListener{}

       Displayable.setCommandListener(CommandListener cl);      - Item.setItemCommandListener(ItemCommandListener cl).      ,   .      ,   ,        this. 

      commandAction(Command c, Displayable d)    commandAction(Command c, Item i)   .       c.           : 
//   .
public void commandAction(Command c, Displayable d){
 if (c==command1) {
 //  ,  
 //  command1
 }
 if (c==command2) {... }
...}
 
//   
public void commandAction(Command c, Item i){
 if (c==comForm1) {
 //  ,  
 //  comForm1
 }
...}

            .       -.      :     ,      ,        .            .