J2ME – Alert UI Bileşeni

İşlem zamanlarında yada sonu gibi durumlarda kullanıcıya uyarı veya hata mesajları gibi bilgi ekranları gösterebilir yada sesli uyarı verebiliriz. Bu gibi durumlarda Alert nesnesi en çok işe yarayacak bileşenimizdir. Alert sadece görüntü olarak değil telefona ait ses özelliklerini kullanarakta kullanıcıya belli uyarılar yapabilir. Bunlar hata, uyarı, bilgi gibi durumlar olabilir.
Alert yapısı aşağıdaki gibidir.

    Alert (String title);
    Alert (String title, String messageString, Image alertImage,AlertType alertType);

Alert sınıfının iki adet kurucu metodu bulunur.
Birinci kurucu metod sadece String tipinde title parametresini alır. Bu parametre kullanıcıya sadece başlığı gösterir.
İkinci kurucu metod içerisinde ise 4 adet parametre bulunur. Birincisi ilkindeki gibi title yani başlık ikincisi String tipinde messageString yani Alert nesnemizin içiriğinde görünecek yazı; üçüncüsü eğer göstermek istiyorsak bir Image yani resim; dördüncü parametre de Alert nesnemizin tipidir. Herhangi bir resim göstermek istemiyorsak Image değeri olarak null göndeririz.

    import javax.microedition.midlet.*;
    import javax.microedition.lcdui.*;
     
    public class Uyari extends MIDlet {
        public void startApp() {
            Alert uyari= new Alert("Baslik Alani","Deneme Uyarisi",null,AlertType.ALARM);
            Display ekran=Display.getDisplay(this);
            ekran.setCurrent(uyari);
        }
       
        public void pauseApp() {
        }
       
        public void destroyApp(boolean unconditional) {
        }
    }

Yukarıdaki örneğimizde Uyarı adında bir sınıfımız var. Bu sınıf içerisinde uyari adında bir Alert örneği tanımlıyoruz. Alert nesnemizin title yani başlığı “Baslik Alani”, içerisinde görünecek yazı “Deneme Uyarisi”, resmi null yani hiç bir resim görünmeyecek tipide ALARM. Bu durumda uygulamamızın akran çıktısı aşağıdaki gibi olur.

alert-1

Görüldüğü gibi başlık alanımız ve içeriğimiz alert nesnesi üzerinde görünüyor. Alert özellikle işlem sonraları yada işlem anında çok işimize yarar.
AlertType bizim uyarılarımızın hangi tipte olacağını belirler.

ALARM - Alarm
CONFIRMATION - Doğrulama
ERROR - Hata
INFO - Bilgi
WARNING - Uyarı

Bu uyarıların görünümleri ve uyarı anında çıkan ses telefonlara göre değişebilir. Bileşenimiz yüksek seviye bir bileşen olduğundan telefonun kendi Alert özelliklerini kullanır.

Uygulamamızda dikkat çekici bir nokta var. Çalışma anından kısa bir süre sonra alert nesnesi kayboluyor. Bunu default timeout süresi dışında bir değerin atanmamış olmasıdır. Normal şartlarda Alert belirli bir süre sonra ekrandan kaybolur. Bu default süreyi getDefaultTimeout() metodu ile alabiliriz. Örnek olarak emilatör üzerinde çıkan süre 2000 dir. Bu sayı milisaniye cinsinden olup 2 saniyeyi ifade etmektedir.
Timeout değerini setTimeout ile belirleyebiliriz.
setTimeout yapısı aşağıdaki gibidir.

    setTimeout(int time);
    getTimeout();

Bu örneklendirecek olursak.

    import javax.microedition.midlet.*;
    import javax.microedition.lcdui.*;
     
    public class Uyari extends MIDlet {
        public void startApp() {
            Alert uyari= new Alert("Uyari Yapiyorum","Deneme",null,AlertType.ALARM);
            System.out.println(uyari.getDefaultTimeout());
            System.out.println(uyari.getTimeout());
            uyari.setTimeout(10000);
            System.out.println(uyari.getTimeout());
            Display ekran=Display.getDisplay(this);
            ekran.setCurrent(uyari);
        }
       
        public void pauseApp() {
        }
       
        public void destroyApp(boolean unconditional) {
        }
    }

Yukarıdaki örnekte ilk adımda Alert nesnemizin default timeout değerini alıyoruz sonrasında ise belirli bir timeout değeri atayıp bunları her adımda konsol ekranına basıyoruz.

setString() getString()

Alert içerisindeki yazı değerlerine erişmek için kullanılır. Çalışma esnasında Alert içerikleri değiştirilmek istenebilir bu durumda setString ve getString metodları kullanılır.
Metodların yapısı aşağıdaki gibidir.

    setString(String str);
    getString();

Örnek vermek gerekirse

    import javax.microedition.midlet.*;
    import javax.microedition.lcdui.*;
     
    public class Uyari extends MIDlet {
        public void startApp() {
            Alert uyari= new Alert("Uyari Yapiyorum","Deneme",null,AlertType.ALARM);
            System.out.println(uyari.getString());
            uyari.setString("Yeni Deneme");
            System.out.println(uyari.getString());
            Display ekran=Display.getDisplay(this);
            ekran.setCurrent(uyari);
        }
       
        public void pauseApp() {
        }
       
        public void destroyApp(boolean unconditional) {
        }
    }

Örnekteki ilk adımda Alert nesnesinin içerik değeri “Deneme” olacaktır. Sonraki adımlarda değer “Yeni Deneme” yapılır ve her adımda içerik konsol ekranına bastırılacaktır.

setType() getType()

Alert nesnemizin tipini de nesnemizi oluşturduktan sonra değiştirebiliriz. Bunu setType ve getType metodları sağlar.
Metodlarımızın yapısı aşağıdaki gibidir.

    setType(AlertType type);
    getType();

setType içerisine AlertType sınıfının içerisinde bulunan daha önce bahsettiğimiz ALARM gibi tipler gönderilir ve getType ile bu tipler alınabilir.

Örnek olarak

    import javax.microedition.midlet.*;
    import javax.microedition.lcdui.*;
     
    public class Uyari extends MIDlet {
        public void startApp() {
            Alert uyari= new Alert("Uyari Yapiyorum","Deneme",null,AlertType.ALARM);
            uyari.setType(AlertType.ERROR);
            uyari.getType();
            Display ekran=Display.getDisplay(this);
            ekran.setCurrent(uyari);
        }
       
        public void pauseApp() {
        }
       
        public void destroyApp(boolean unconditional) {
        }
    }

Yukarıdaki adımda ALARM tipindeki bir Alert ERROR tipine dönüştürülmüştür. Gerçek hayattan örnek verecek olursak uygulamamızın nasıl sonlandığına göre uyarı tipimize değiştirebiliriz. Örnek olarak uygulama başarılı olarak tamamlanmışsa INFO hata vermişse ERROR tipinde olabilir.

getTitle setTitle
Diğer setTitle ve getTitle’ lar ile aynı işleve sahiptir Alert nesnesinin başlık alanına erişmek için kullanılır.
Metodun Yapısı

    setTitle(String s);
    getTitle();

Kodu örneklendirmek gerekirse

    import javax.microedition.midlet.*;
    import javax.microedition.lcdui.*;
     
    public class Uyari extends MIDlet {
        public void startApp() {
            Alert uyari= new Alert("Uyari Yapiyorum","Deneme",null,AlertType.ALARM);
            System.out.println(uyari.getTitle());
            uyari.setTitle("Baslik Degisti");
            Display ekran=Display.getDisplay(this);
            ekran.setCurrent(uyari);
        }
       
        public void pauseApp() {
        }
       
        public void destroyApp(boolean unconditional) {
        }
    }

Yukarıdaki kodda uygulamamızın başlığı nesne yaratılırken belirleniyor sonrasında ise değer değiştiriliyor. Değer değiştirilmeden önce konsol ekranına getTitle() metodu ile basılıyor.

Dec 24th, 2008
Tags: , ,
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>