J2ME - Display UI Bileseni

UI bilesenlerini ekranda göstermemiz için öncelikle ekrana sahip olmamiz gerekir bu yüzden bir nesneyi ekrana atamadan önce ekran sahip olmaliyiz. Bunun için Display tipinde bir nesne tanimlamaliyiz. Display nesnesinin static bir metodu olan getDisplay() metodu ile belirttigimiz bir midletin ekranini alabiliriz. Bu metoda almamiz gereken midlet nesnesinin referansini göndermemiz gerekiyor.

Display.getDisplay(MIDlet m);

Yukaridaki kod blogu ile ekran nesnesine sahip oluruz. Örneklemek gerekirse

Display ekran = Display.getDisplay(this);

Burada ekran adinda Display tipinde bir nesne yarattik. Bu nesneye Display sinifinin getDisplay metodu ile ulastik ve parametre olarak this kelimesini gönderdik. Burada this kelimesi içerisinde bulundugumuz MIDlet i belirtir. Yani bulundugumuz MIDlet e ait bir ekran almis oluyoruz. Aksi bir durumda farkli bir MIDlet in referansinida gönderebilirdik. Display tipinde bir referansa sahip olduktan sonra bu nesneye belli bir UI bilesenini atayabiliriz. Bu bilesen TextBox, Form, List, Alert ve Canvas olabilir. Ayni anda tek bir bilesen ekranda görülebilir. Yanliz Form nesnesine ait olan bazi bilesenler form nesnesine eklendikten sonra nesne ekrana verilebilir bu durumda yine tek bir nesne ekrana atanmis fakat form nesnesi içerisinde bir çok nesne olmus olur.

Display ekran=Display.getDisplay(this);
ekran.setCurrent(nesne);

Yukaridaki örnek yapida aldigimiz ekrana bir bilesen atiyoruz. Bu nesne yine TextBox, Form, List, Alert yada Canvas olabilir bu yapiyi örneklendirelim:

import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
 
public class OrnekMIDlet extends MIDlet {
    public void startApp() {
        TextBox ornek1= new TextBox("Ornek1","Ornek1",20,0);
        TextBox ornek2= new TextBox("Ornek2","Ornek2",20,0);
        Display ekran=Display.getDisplay(this);
        ekran.setCurrent(ornek1);
        ekran.setCurrent(ornek2);
    }
 
    public void pauseApp() {
    }
   
    public void destroyApp(boolean unconditional) {
    }
}

Örnegimizde iki adet TextBox bir adette Display tipinde degisken yarattik. TextBox larimiz ornek1 ve ornek2 dir. Öncelikle ornek1 nesnesini setCurrent() motodu ile ekranimiza atiyoruz artik ornek1 ekranimizda görülecektir. Sonrasinda ekran.setCurrent(ornek2) ile ornek2 nesnemizi atadik bu durumda artik ekranda sadece ornek2 görünecektir. Yani ikinci adimdaki setCurrent() metodu birincisini ezmistir.
Bu kodumuzun ekran çiktisi asagidaki gibidir.

display.JPG

Göründügü gibi ekranimizda sadece Ornek2 mevcut. Aslinda burada önce Ornek1 görünmüs sonrasinda ise Ornek2 ekrana verilerek ekrani kaplamistir. NetBeans te kodumuzu debug durumunda kodumuzu çalistirirsak öncelikle Ornek1 in göründügünü rahatlikla görebiliriz.

Etiketler: ,

Email Adresiniz:  
Listeye Kayit Ol Ayril  

Yorum Yapın