J2ME – DateField UI Bileşeni

Tarih girişleri yazılımcılar için her zaman sorun olmuştur. Tarih girişi için kullanıcı dd/mm/yyyy, dd.mm.yyyy gibi formatlar kullanabilir. TextField gibi alanlarda bunu anlamamız sorun olur sonuç olarak girilen ilk veya ilk iki değer gün yada ay olabilir. DateField J2ME ortamında bu girişleri konutrollü bir şekilde yapmamızı sağlar. Bu telefonun özelliklerine göre formatlı bir giriş ekranı yada takvim nesnesi olabilir .
Kullanım şekli:

    public DateField(String label, int mode);

Label, TextField’ ta olduğu gibi input alanının açıklama etiketini oluşturur. Mode giriş ekranımızın hangi tipte olacağıdır.
Bileşenimizi kod olarak örneklendirecek olursak.

    import javax.microedition.midlet.*;
    import javax.microedition.lcdui.*;
     
    public class FormOrnek extends MIDlet {
        public void startApp() {
            Form kayitFormu= new Form("Kayit Formu");
            DateField tarih= new DateField("Tarih",DateField.DATE);
            kayitFormu.append(tarih);
            Display ekran=Display.getDisplay(this);
            ekran.setCurrent(kayitFormu);
        }
       
        public void pauseApp() {
        }
       
        public void destroyApp(boolean unconditional) {
        }
    }

Uygulamamızın çıktısı aşağıdaki gibi olur.

datefield-1

DateField bileşeni form ekranımızda yukarıdaki gibi görünür ancak giriş yapılmak istendiğinde aşağıdaki şekli alır. Emilatör ortamında böyle görünmesine karşın yüksek seviye bir bileşen olduğundan farklı telefonlarda farklı şekillerde görünebilir. Örnek olarak bu çıktı ericsson ortamında çok daha farklıdır.

datefield-2

Mod tiplerini yine DateField sınıfından alabiliriz.

DateField.TIME - Saat
DateField.DATE - Tarih
DateField.DATE_TIME - Tarih ve Saat

Yukarıdaki mod seçenekleri ile veri girişlerimizi daha kullanılabilir hale getirebiliriz. Veri girişleri sonrasında Date tipinde bir değişken döner.
DateField mod seçeneklerini tek tek inceleyecek olursak.

    import javax.microedition.midlet.*;
    import javax.microedition.lcdui.*;
     
    public class FormOrnek extends MIDlet {
        public void startApp() {
            Form kayitFormu= new Form("Kayit Formu");
            DateField tarih1= new DateField("Tarih",DateField.TIME);
            DateField tarih2= new DateField("Tarih",DateField.DATE_TIME);
            DateField tarih3= new DateField("Tarih",DateField.DATE);
            kayitFormu.append(tarih);
           
            Display ekran=Display.getDisplay(this);
            ekran.setCurrent(kayitFormu);
        }
       
        public void pauseApp() {
        }
       
        public void destroyApp(boolean unconditional) {
        }
    }

datefield-3

DateField.DATE

datefield-2

DateField.DATE_TIME

datefield-4

DATE_TIME mod her iki veri girişinede imkan sağladığından seçilen Date ve Time liklerinde iki tip bileşende görünecektir.

setLabel() getLabel()
Nesnenin label özelliğine erişmeyi sağlarlar.

    setLabel(String label);
    getLabel();

setInputMode() getInputMode()
DateField nesnesinin mode özelliğine erişmeye yarar. Mode TIME, DATE veya DATE_TIME olabilir.

    setInputMode(int mode);
    getInputMode();

setInputMode() metodu içerisinde atanan int değer DateField sınıfından alınabilir. Örnek verecek olursak.

    import javax.microedition.midlet.*;
    import javax.microedition.lcdui.*;
     
    public class FormOrnek extends MIDlet {
        public void startApp() {
            Form kayitFormu= new Form("Kayit Formu");
            DateField tarih= new DateField("Tarih",DateField.TIME);
            tarih.getInputMode();
            tarih.setInputMode(DateField.DATE);
           
            kayitFormu.append(tarih);
           
            Display ekran=Display.getDisplay(this);
            ekran.setCurrent(kayitFormu);
        }
       
        public void pauseApp() {
        }
       
        public void destroyApp(boolean unconditional) {
        }
    }
Dec 25th, 2008
No comments yet.

Leave a comment

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>