Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

Komponen Class Item (1) As’ad Djamalilleil

Presentasi serupa


Presentasi berjudul: "Komponen Class Item (1) As’ad Djamalilleil"— Transcript presentasi:

1 Komponen Class Item (1) As’ad Djamalilleil http://kampusku.uni.me asad.kom@gmail.com

2 Class StringItem StringItem merupakan komponen user interface paling sederhana yang digunakan untuk menampilkan sebuah atau sepasang string pada Form public StringItem(String label, String text) label –label dari StringItem dapat diubah dengan metode setLabel() dan dibaca dengan metode getLabel() text –Isi dari StringItem dpt diubah dgn metode setText() dan dibaca dgn metode getText()

3 public String getText( ) public void setText(String text) Kedua argumen label dan text dapat dikosongkan dengan memberikan nilai null sebagai argumen Sebuah teknik yang biasa digunakan untuk menambahkan teks dalam Form adalah dengan menggunakan metode append() seperti berikut: form.append("Eyang Sumur"); Kode di atas sama dengan membuat objek StringItem dengan null sebagai argumen label, seperti kode berikut: form.append(new StringItem(null, "Eyang Sumur"));

4 Aplikasi Demo StringItem import javax.microedition.midlet.*; import javax.microedition.lcdui.*; public class CobaTulis extends MIDlet { private Display layar; private Form frm; private StringItem str; public CobaTulis() { layar = Display.getDisplay(this); }

5 public void startApp() { frm = new Form("Percobaan StringItem"); str = new StringItem("Nama :", "Eyang Sumur"); frm.append(str); layar.setCurrent(frm); System.out.println("ini labelnya : " + str.getLabel()); System.out.println("ini textnya : " + str.getText()); str.setLabel("Pekerjaan :"); str.setText("Penggali sumur"); }

6 public void pauseApp() { } public void destroyApp(boolean unconditional) { }

7 Class TextField Perbedaan antara TextField dan TextBox adalah sbb: –TextBox turunan dari class Screen sehingga ditempilkan memenuhi satu layar. TextField adalah sebuah Item yang menempati hanya bagian kecil dari Form. Biasanya TextField ditampilkan sebagai satu baris ruang input saja –TextBox tidak dapat melaporkan perubahan isinya ke listener, sedangkan perubahan isi pada TextField dilaporkan ke class ItemStateListener yang telah dihubungkan dengan Form dimana TextField tersebut ditampilkan

8 TextField hanya memiliki sebuah constructor yang mirip dengan TextBox: public TextField(String label, String text, int maxSize, int constraints); label –ditampilkan sebelum ruang input sebagai keterangan, dapat dikosongkan dgn nilai null sebagai argumen text –isi awal dari TextField, dapat pula dikosongkan seperti pada bagian label di atas

9 maxSize –jumlah maksimum karakter yang dapat ditampung constraints –membatasi tipe dari data yang diinput Jumlah maksimum karakter dapat diubah dengan metode setMaxSize(), sedangkan untuk mendapatkan jumlah maksimum karakter dapat digunakan metode getMaxSize() Jika maxSize lebih kecil dibandingkan dengan isi TextField, maka akan tampil error IllegalArgumentException

10 Isi dari TextField dapat dibaca lewat metode: public String getString( ) public int getChars(char[] chars) Sebelum menggunakan metode getChars(), terlebih dahulu kita harus mengalokasikan array karakter untuk diisi. Nilai balik dari metode ini adalah jumlah karakter dari array yang digunakan Jika array terlalu pendek untuk menampung isi TextField, maka akan tampil pesan error ArrayIndexOutOfBoundsException Error ini dapat dihindari dengan menggunakan metode size() untuk mendapatkan jumlah karakter pada TextField: char[] kar = new char[tfNama.size()]; int jum_kar = tfNama.getChars(kar);

11 API dari TextField dan TextBox memiliki beberapa metode yang memperbolehkan pengubahan terhadap isinya secara programatik Seluruh metode ini akan menampilkan pesan error IllegalArgumentException jika hasil dari operasi yang dijalankan menghasilkan isi yang tidak konsisten dengan constraint yang diberikan pada TextField tersebut

12 public void delete(int offset, int length) –Menghilangkan sejumlah karakter sesuai argumen length dan dimulai dari posisi karakter dari argumen offset public void insert(char[ ] chars, int offset, int length, int position) –Menyisipkan karakter dari chars pada index ke offset hingga chars pada index ke offset + length -1 ke dalam TextField, dimulai dari position yang diberikan

13 public void insert(String src, int position) –Menyisipkan string pada argumen src ke dalam TextField pada posisi karakter ke position public void setChars(char[ ] chars, int offset, int length) –Mengganti isi dari TextField dengan chars pada index ke offset hingga index ke offset + length -1 public void setString(String src) –Mengganti isi TextField dengan string yang berada pada argumen src

14 Setiap operasi di atas akan menampilkan pesan error IllegalArgumentException bila panjang isi TextField hasil operasi tersebut lebih dari maxSize yang ditentukan sebelumnya Posisi dari titik penyisipan pada TextField ditandai pada layar dengan sebuah cursor atau yang diistilahkan dengan caret. Posisi offset dari cursor dapat diketahui lewat metode berikut: public int getCaretPosition(); Kode berikut menyisipkan tiga karakter dimulai dari posisi cursor: textField.insert("ABC", textField.getCaretPosition());

15 Constraints / Batasan Argumen constraints pada constructor TextField atau pada metode setConstraints() dapat digunakan untuk membatasi karakter yang dapat diketikkan oleh user ke dalam TextField

16 ConstraintNilaiKeterangan TextField.ANY0Membolehkan karakter apapun untuk diinput TextField.EMAILADDR1Hanya dapat diinput dengan alamat email yang benar TextField.NUMERIC2Hanya dapat diinput dengan nilai integer saja (karakter 0 – 9). Untuk bilangan negatif dapat diawali dengan tanda minus TextField. PHONENUMBER 3Hanya dapat diinput dengan nomor telepon. Format penulisan nomor telepon dapat berbeda di tiap perangkat mobile

17 ConstraintNilaiKeterangan TextField.URL4Hanya dapat diinput dengan format URL yang benar TextField. DECIMAL 5 Menginput dengan format bilangan decimal berbentuk pecahan TextField. PASSWORD 65536 Nilai yang diketikkan pada TextField akan di-masking untuk alasan keamanan. Biasanya menggunakan karakter asterisk ( * ) TextField. UNEDITABLE 131072 Isi TextField tidak dapat diedit

18 Constraint dari TextField atau TextBox dapat diubah dengan memanggil metode setConstraints() : public void setConstraints(int constraints); Ketika metode ini dipanggil, isi dari TextField diperiksa untuk memastikan konsistensinya dengan constraint yang baru, jika tidak maka field akan dibersihkan isinya Beberapa constraint dapat digabung dengan menggunakan operator bitwise OR ( | ), misalnya: TextField.ANY | TextField.EMAILADDR

19 Aplikasi Demo TextField import javax.microedition.midlet.MIDlet; import javax.microedition.lcdui.Form; import javax.microedition.lcdui.TextField; import javax.microedition.lcdui.*; public class CobaTeks extends MIDlet { private Display disp; private Form frm; private TextField tf; public CobaTeks() { disp = Display.getDisplay(this); }

20 public void startApp() { frm = new Form("Demo TextField"); tf = new TextField(null, null, 255, 0); tf.setLabel("Email :"); tf.setConstraints(TextField.EMAILADDR | TextField.UNEDITABLE); tf.setString("asad.kom@gmail.com"); frm.append(tf); disp.setCurrent(frm); } public void destroyApp(boolean unconditional) { } public void pauseApp() { }

21 Terkadang dibutuhkan untuk dijalankan aksi pada saat nilai dari field input mengalami perubahan Perubahan pada status Item yang menerima input dari user diberikan kepada class ItemStateListener yang dihubungkan dengan Form ItemStateListener adalah sebuah interface dengan sebuah metode yang dipanggil ketika Item apapun pada Form memiliki perubahan status untuk dilaporkan: Perubahan Status Item/Komponen

22 public void itemStateChanged(Item item); Sebuah ItemStateListener dihubungkan menggunakan metode Form berikut: public void setItemStateListener(ItemStateListener l); Hanya satu ItemStateListener dapat dihubungkan dengan sebuah Form pada satu saat dan memanggil setItemListener() atau memanggilnya dengan argumen null akan menghilangkan listener sebelumnya Perubahan status Item lewat kode program tidak akan memicu notifikasi ke listener

23 Aplikasi Demo Item State Change Pada TextField import javax.microedition.midlet.*; import javax.microedition.lcdui.*; public class CobaForm extends MIDlet implements CommandListener, ItemStateListener{ private Display layar; private Form formKu; private TextField tfNama; private Command cmdOK; public CobaForm() { layar = Display.getDisplay(this); }

24 public void startApp() { formKu = new Form("Ini judul form"); layar.setCurrent(formKu); tfNama = new TextField("Nama :",null, 32, 0); formKu.append(tfNama); cmdOK = new Command("OK", Command.OK, 0); formKu.addCommand(cmdOK); formKu.setCommandListener(this); formKu.setItemStateListener(this); }

25 public void commandAction(Command c, Displayable d) { System.out.println("Command ditekan"); } public void itemStateChanged(Item item) { System.out.println("Isi TextField berubah"); } public void destroyApp(boolean unconditional) { } public void pauseApp() { }

26 Contoh potongan program yang digunakan untuk membaca perubahan isi dari TextField lewat ItemStateChange : public void itemStateChanged(Item item) { if (item instanceof TextField) System.out.println("Isinya: <" + ((TextField)item).getString( ) + ">"); }

27 Minggu depan mid-test !! Materi mid-test  SEMUANYA


Download ppt "Komponen Class Item (1) As’ad Djamalilleil"

Presentasi serupa


Iklan oleh Google