#ff0000 19  2005 . - #000655     
#0000ff   Eric Giguere.
#def            .  J2SE   ,    .      java.util.Calendar, java.util.Date, java.util.TimeZone  java.text.DateFormat.  ,  MIDP       Calendar, Date  TimeZone.   DateFormat      .    ,          .
    javax.microedition.lcdui.DateField,      API  . DateField     ,    ,    .        . DateField     Item.  ,       .  ,              DateField.
 Form f = new Form( "A Form" );
 f.append( df );
     Item, DateField        .         Displat.setCurrent.
 DateField    :
    public DateField( String label, int mode );
    public DateField( String label, int mode, java.util.TimeZone zone );
,        DateFields     .          .       .           DateField.
   .   ,     .        ,  null     .     .    :
    public static final int DATE = 1;
    public static final int TIME = 2;
    public static final int DATE_TIME = 3;
 ,     :  ,     .        ,   setInputMode.
      DateField,        .     .
    Display display = ....; // initialized elsewhere
    Form f = new Form( "An Empty Date" );
    DateField df = new DateField( "Date:", 
                                  DateField.DATE );
    f.append( df );
    display.setCurrent( f );
    ,   setDate      java.util.Date  .
    Calendar c = Calendar.getInstance();
    c.set( Calendar.MONTH, Calendar.OCTOBER );
    c.set( Calendar.DAY_OF_MONTH, 18 );
    c.set( Calendar.YEAR, 1996 );
    c.set( Calendar.HOUR_OF_DAY, 16 );
    c.set( Calendar.MINUTE, 39 );
    c.set( Calendar.SECOND, 45 );
    c.set( Calendar.MILLISECOND, 0 );
    
    Date moment = c.getTime();
    DateField df = new DateField( null, 
                                 DateField.DATE_TIME );
    df.setTime( moment );

 Date        1  1970    .  ,   Calendar  Date.
,  DateField   TIME      1  1970.             Date    .
    public static Date clearDate( Date d ){
        Calendar c = Calendar.getInstance();
        c.setTime( d );
        c.set( Calendar.MONTH, Calendar.JANUARY );
        c.set( Calendar.DAY_OF_MONTH, 1 );
        c.set( Calendar.YEAR, 1970 );
        return c.getTime();
    }

    public static Date combineDateTime( 
                                Date date, Date time ){
        Calendar cd = Calendar.getInstance();
        Calendar ct = Calendar.getInstance();

        cd.setTime( date );
        ct.setTime( time );

        ct.set( Calendar.MONTH, 
                            cd.get( Calendar.MONTH ) );
        ct.set( Calendar.DAY_OF_MONTH, 
                     cd.get( Calendar.DAY_OF_MONTH ) );
        ct.set( Calendar.YEAR, 
                             cd.get( Calendar.YEAR ) );

        return ct.getTime();
    }


        Calendadr, Date   .
   DateField ,         .         ,   getDate:
    DateField df = ....;
    Date editedDate = df.getDate();

   MIDlet,         ,    .
import java.util.*;
import javax.microedition.lcdui.*;
import javax.microedition.midlet.*;

/**
 *   /   
 * DateField.
 */

public class DateFieldTest extends MIDlet {

    private Display display;
    
    //   .
  
    private Command exitCommand =
             new Command( "Exit", Command.EXIT, 1 ); 
    private Command okCommand =
             new Command( "OK", Command.OK, 1 );
    private Command cancelCommand =
             new Command( 
                         "Cancel", Command.CANCEL, 1 );

    public DateFieldTest(){
    }

    protected void destroyApp( boolean unconditional )
                    throws MIDletStateChangeException {
        exitMIDlet();
    }

    protected void pauseApp(){
    }
 
    protected void startApp()
                    throws MIDletStateChangeException {
        if( display == null ){ // first time called...
            initMIDlet();
        }
    }

    private void initMIDlet(){
        display = Display.getDisplay( this );
        testList = new TestList();
        display.setCurrent( testList );
    }

    public void exitMIDlet(){
        notifyDestroyed();
    }
 
    //     1  1970 

    public static Date clearDate( Date d ){
        Calendar c = Calendar.getInstance();
        c.setTime( d );
        c.set( Calendar.MONTH, Calendar.JANUARY );
        c.set( Calendar.DAY_OF_MONTH, 1 );
        c.set( Calendar.YEAR, 1970 );
        return c.getTime();
    }

    //    .

    public static Date combineDateTime( Date date, 
                                        Date time ){
        Calendar cd = Calendar.getInstance();
        Calendar ct = Calendar.getInstance();

        cd.setTime( date );
        ct.setTime( time );

        ct.set( Calendar.MONTH, 
              cd.get( Calendar.MONTH ) );
        ct.set( Calendar.DAY_OF_MONTH,  
                   cd.get( Calendar.DAY_OF_MONTH ) );
        ct.set( Calendar.YEAR, 
                   cd.get( Calendar.YEAR ) );

        return ct.getTime();
    }
    
    //    

    static final String[] testLabels = {
        "Current date",
        "Current time",
        "Current date/time",
        "Edit date",
        "Edit time",
        "Edit date/time",
    };

    private TestList testList;
    private Date     editDate;

    //
    //   
    //

    class TestList extends List
                   implements CommandListener {
        public TestList(){
            super( "DateField Tests", IMPLICIT,
                   testLabels, null );
            addCommand( exitCommand );
            setCommandListener( this );
        }

        public void commandAction( Command c,
                                   Displayable d ){
            if( c == exitCommand ){
                exitMIDlet();
            } else if( c == List.SELECT_COMMAND ){
             
                // Figure out which date to display
                // and what the input mode is

                int     which = getSelectedIndex();
                String  label = getString( which );
                int     mode = ( which % 3 ) + 1;
                boolean save = ( which > 2 );

                display.setCurrent(
                   new Edit( save, label, mode ) );
            }
        }
    }

    //
    //  /   .
    //

    class Edit extends Form
               implements CommandListener {

        public Edit( boolean save, String label,
                     int mode ){

            super( label );
            this.save = save;

            Date d = editDate;

            if( !save ){
                d = new Date();
            }

            dateField = new DateField( null, mode );
            append( dateField );

            if( d != null ){
                if( mode == DateField.TIME ){
                    d = clearDate( d );
                }

                dateField.setDate( d );
            }

            addCommand( okCommand );

            if( save ){
                addCommand( cancelCommand );
            }

            setCommandListener( this );
        }

        public void commandAction( Command c,
                                   Displayable d ){
            Alert alert = null;
            Date  date = dateField.getDate();

            if( 
              save && date != null && c 
                == okCommand ){
                if( editDate != null ){
                   int mode = dateField.getInputMode();
                    if( mode == DateField.DATE ){
                        editDate = combineDateTime( 
                                      date, editDate );
                    } else if( 
                              mode == DateField.TIME ){
                        editDate = combineDateTime( 
                                      editDate, date );
                    } else {
                        editDate = date;
                    }
                } else {
                    editDate = date;
                }

                Calendar cal = Calendar.getInstance();
                cal.setTime( editDate );

                alert = new Alert( "New date/time" );
                alert.setString( 
                 "The saved date/time is now " + cal );
                alert.setTimeout( Alert.FOREVER );
            }

            if( alert != null ){
                display.setCurrent( alert, testList );
            } else {
                display.setCurrent( testList );
            }
        }

        private DateField dateField;
        private boolean   save;
    }
}


-----------

public class MultiAlert extends MIDlet {

    Display      display;
    Command      exitCommand = new Command( "Exit", Command.EXIT,
                                                             1 );
        public MultiAlert() {
        display = Display.getDisplay( this );
        router = new AlertRouter( display );

      timer1.schedule( new AlertTrigger( "Alert 1", 
                             "This is alert #1" ), 5000, 10000 );
        timer2.schedule( new AlertTrigger( "Alert 2", 
                              "This is alert #2" ), 5000, 7000 );
        timer3.schedule( new AlertTrigger( "Alert 3", 
                              "This is alert #3" ), 5000, 9000 );
    } 

#0000ff: Arix
         : 
#ff0000 http://www.mobilab.ru