#000655   J2ME,  ,  - ,  Hello World
#0000ff : An12345
#ff0000 14  2007  
#def   :    ,     ,    ,            ,        ,            J2ME.    ,  J2ME ,   Sun Microsystems    J2SE      .   Java ,   CLDC1.1  MIDP2.0  J2ME ,       ,     . 
     J2ME.   ,   J2ME      : "   ,        ,       - CLDC.    ,          (UI) - CDC ."-      ,          . 
           CLDC1.0 MIDP2.0 J2ME,     ,     CLDC1.0   : 
 
 
Java.io
  -   J2SE
java.lang
      J2SE
java.util
    J2SE
javax.mircoedition.io
    CLDC 1.0
 3  (java.io, java.lang, java.util)   java. , ..      J2SE     , 4  (javax.microedition.io),    javax. , ..     ,    J2ME        J2SE.  CLDC          ,       ,     MIDP1.0 (Mobile Information Device Profile),             ( ,     CLDC1.1 MIDP2.0 ,      ,        MIDP1.0): 
 
 
java.io
  - java
java.lang
     java
java.util
   java
javax.microedition.icdui
    J2ME
javax.microedition.rms
     J2ME
javax.microedition.midlet
  J2ME 
javax.microedition.io
   MIDP
        ,       ,        ,       ,   "HELLO WORLD!",        ,       ,        Canvas,        .        ,   ,         J2ME    : 
1)J2SDK -    Java ,    ,     ,        ,     ,          ,        .   J2SDK      : http://java.sun.com ,     j2me    ,  SDK1.6,          ,       ! 
2)WTK -  ,       j2me,        ,    ,    (GUI),        ,       : http://java.sun.com,      . 
3) - ,        ,   WTK   ,        .     Siemens   : http://www.siemens-club.ru/soft-emul.php,     SDK.      :SMTK (    )    ,     . 
4)   ,        ,       ,      Windows.      ,     : JBuilder, IntelliJ IDEA, Eclipse, Netbeans  .             ,    ,      IntelliJ IDEA. 
         .      J2SDK,            Windows,     ,   -      ,    (: C:/javasdk/).  ,       PATH,      (WIN+R -> 'cmd')      'java -version' ( 'java'  '-version' -  !),    -  : 

C:>java -version
java version "1.4.1_01"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.1_01-b01)
Java HotSpot(TM) Client VM (build 1.4.1_01-b01, mixed mode)
  ,      PATH ,       : 

C:>jva -version
"jva"      ,     .       ( WinXP):  ->   ->  ->  () ->  ,       path ,         : ';<C:/javasdk/bin>' ,  '', javasdk -    SDK  .  ,         path ,       'java -version'  -    .   SDK,  WTK,       ,  ,         C:/javasdk/ ,       .  ,           WTK,     ,   .    SMTK,        SDK,  ,    ,    ,      . ,   SMTK (   2.0),      ,       m50, m55, mc60, s65, cx65 , ..        ,               .     ,    SMTK Emulator launcher,    -> Siemens Mobility Toolkit -> SMTK Emulator Launcher,   ,        : 

  ,   ,      (1),    (2)     (3): 

,          ,  ,       J2ME .  ,     ,      ,   : 

//      

/**  
*     ,
*     
*   ( )
*/
     ,    2 : 'Hello world!'  ' !' (   WTK  ,   C:/WTK        C:/WTK     WTK) : 
1)  WTK (C:/WTK/bin/ktoolbar.bat): 
2)   'New Project': 

3)    'Project Name'  ,   'MIDlet Class Name'    ,  ,   ,  Hello  hello -   !   ,   'Project Name'  'HelloMIDlet1'   'MIDlet Class Name' - 'HelloClass'!   'Create Project',   ,    ,        (Required),      : 
 

MIDlet-Jar-Size
 JAR  
MIDlet-Jar-URL
  JAR   
MIDlet-Name
 
MIDlet-Vendor
 
MIDlet-Version
  ( ,  ,  1.0.3)
MicroEdition-Configuration
CLDC  
MicroEdition-Profile
 MIDP 
    ,    'Create Project',    WTK  ,       : 

4)              ,      : 


C:/WTK/apps/HelloMIDlet1/bin
     
C:/WTK/apps/HelloMIDlet1/src
       
C:/WTK/apps/HelloMIDlet1/res
      
C:/WTK/apps/HelloMIDlet1/lib
     :
5) ,     (      C:/WTK/apps/HelloMIDlet1/src/HelloClass.java): 

/**HelloClass.java**/

//   ,     
//    java    .

import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;


//      J2ME,  
// MIDlet,       J2ME  

public class HelloClass extends MIDlet{

//     MIDlet: startApp(),
// pauseApp()  destroyApp(boolean n)  
//      , 
//     // .     
//  startApp(),     
//  destroyApp()  pauseApp()      
// ,        - !

public void destroyApp(boolean d){notifyDestroyed();}
public void pauseApp(){}
public void startApp(){

//     (startApp())   
//  form,     :
// < >< >< ><
// >=< >new< ><(< 1>,
// < 2>, :)><;>
//       !
//  ,   Form(String title) 
//  1  -  . 

Form form = new Form("!");

//        'form' 
//  ,  5   ,   
//     -   ,  
//        http://java.sun.com.
//        , 
//   Form()   append(String Text), 
//  form.append("Text"); , ,    
//      ,  
//       
//  (  ),  3   
//   Unicode   ' !', 
//   : // " \u0412\u0441\u0435\u043C\u0020\u043F
// \u0440\u0438\u0432\u0435\u0442\u0021"
//    ,    Unicode  
//  .  \n   
//     .  

form.append("Hello World!\n");
form.append(" !\n");
form.append("\u0412\u0441\u0435\u043C\u0020\u043F\u0440\u0438\u0432\u0435\u0442\u0021");

//   2    , ..   
//     ,       Display,
//   display    :

Display display = Display.getDisplay(this);

// A      display   form,
//  .
 
display.setCurrent(form);

//  startApp(){:}   HelloClass(){:}
}
}
6) ,       ,      .   KToolBar WTK (   ,          Open Project -> HelloMIDlet1).   Build,        1-5,      : 

Project settings saved Building "HelloMIDlet1"
Build complete
     ,   ,           . 
7)    6    ,         ,    ,       'Device:'    'Run',     ,   'Launch'    ,     -,  ,  .    " !"  ,   Unicode : "\u0412\u0441\u0435\u043C\u0020\u043F\u0440\u0438\u0432\u0435\u0442\u0021"      ,         , ,     ,   (, Samsung)     ' ',       Unicode: 
8)  ,      WTK,     JAR ,       .     WTK,    : 
Project -> Package -> Create Package.    ,       : 

Project settings saved Building "HelloMIDlet1"
Wrote c:\WTK\apps\HelloMIDlet1\bin\HelloMIDlet1.jar
Wrote c:\WTK\apps\HelloMIDlet1\bin\HelloMIDlet1.jad
Build complete
  :/WTK/apps/HelloMIDlet1/bin    HelloMIDlet1.jar  HelloMIDlet1.jad,       ,   ,     Siemens Emulator.     ,       HelloMIDlet1.jar    '  : -> Emulator',  
  ,     : 
  ,        Siemens,     .    ,   J2ME        . 
9)   ,               . 
                  .    ,         'Hello World'        ,    =) 
 ,        . 
       ,    ,  2: 
1) HelloClass.java -          ,             HelloCanvas. 
2) HelloCanvas.java - ,          . 
      : 
1)   1-4   ,   3   'Project Name' HelloMIDlet2. 
2)       (C:/WTK/apps/HelloMIDlet2/src/)   2 : HelloClass.java  HelloCanvas.java. 
3) HelloMIDlet2.java: 

/**HelloClass.java**/

//   
 
 import javax.microedition.midlet.*;
 import javax.microedition.lcdui.*;

//    , implements CommandListener
// ,      .

 public class HelloClass extends MIDlet implements CommandListener{

//  ,     .

  Display d = Display.getDisplay(this);

//   exit,     .
//  ,  Command.EXIT     
//           !

    private Command exit = new Command("Exit", Command.EXIT, 0);    
    public void startApp() {

//  ,         , 
//    HelloCanvas,      
// :

        HelloCanvas Canv = new HelloCanvas();

//  .addCommand(Command command)   
//   ,      "Exit"
// (. Command exit:)

        Canv.addCommand(exit);

// ,       .
// ..    implements CommandListener,    this,
// ..     commandAction  .

        Canv.setCommandListener(this);

//     . (.  ):

        d.setCurrent(Canv);
   }
    
//   , ..       
// (.  1)

    public void pauseApp() {}

//       
// destroyApp(boolean b);
    
    public void destroyApp(boolean u) {notifyDestroyed();}

//    ,    
//   ,     ,
//   implements CommandListener. 

    public void commandAction(Command command, Displayable displayable) {

//    (   
//  )     exit,  
// ,    (. )

      if(command == exit){destroyApp(false); }

//    .

    }
}
4) HelloCanvas.java: 

/**HelloCanvas.java**/

//   :

import javax.microedition.lcdui.Canvas;
import javax.microedition.lcdui.Graphics;

//  ,  '',    extends Canvas,
//        
// paint(Graphics g),     
//        Graphics g

public class HelloCanvas extends Canvas{

//       (   !!!)
    
    private int w = getWidth();
    private int h = getHeight();

//   paint(),       =)

    protected void paint(Graphics g) {

//    (RRR,GGG,BBB);
//   ,   .
//  fillRect(x0,y0,w,h)    w   h, 
//    (x0, y0),      !

        g.setColor(255,255,117);
        g.fillRect(0,0,w,h);

//  ...

        g.setColor(183,183,187);

//   "Hello World!",    
//    (w/2+1, h/3+1) ()
        g.drawString("Hello World!", w/2+1, h/3+1, Graphics.HCENTER|Graphics.TOP);
     
//  ...

        g.setColor(213,34,9);

// ,     ,    1 
//   ( )

        g.drawString("Hello World!", w/2, h/3, Graphics.HCENTER|Graphics.TOP);

//  ...

        g.setColor(47,19,202);

//      ,      .

        g.drawRect(10,h/3-h/4,w-20,h/3+h/4);

//    .

    }    
}
    ,     Run      : 

         Java2ME,              J2me,         . 
            ,    . 
,        an12345@bk.ru,     . 
 ,     IRC  #j2me   RusNET (irc.run.net:6669, irc.ru:6669)              : 
 ! 