Komponen Class Item (1) As’ad Djamalilleil

Slides:



Advertisements
Presentasi serupa
Pemrograman JAVA (TIB09)
Advertisements

Mendapatkan Input dari Keyboard
GUI MENGGUNAKAN HANDPHONE BERFASILITAS J2ME
Dosen: Zakki Falani, S.Kom Fakultas Ilmu Komputer Universitas Narotama
MIDlet User Interface (3) As’ad Djamalilleil
Package As’ad Djamalilleil
Komponen Class Item (2) As’ad Djamalilleil
Struktur Kode Program MIDlet As’ad Djamalilleil
Inheritance (Pewarisan) As’ad Djamalilleil
WITH FANDI SUSANTO S.SI. Pemrograman Aplikasi Bergerak By Fandi Susanto S.Si.
Struktur Kode Aplikasi Java (2) As’ad Djamalilleil
Akses File As’ad Djamalilleil
Abstract & Interface As’ad Djamalilleil
Oleh : Sukma Murdani, S.Kom. SILABUS PENDAHULUAN Pengenalan OOP Pengenalan JAVA OOP (Object Oriented Programming) JAVA Class, Java Interface Encapsulation.
Functions/Fungsi As’ad Djamalilleil
Web Teknologi 3 (MKB721C) Minggu 2 Page 1 MINGGU 2 Web Teknologi 3 (MKB721C) Pokok Bahasan: –Midlet –User Interface Tujuan Instruksional Khusus: Agar.
Komponen Class Item (3) As’ad Djamalilleil
PEMOGRAMAN APLIKASI BERGERAK (Java ME)
MIDlet User Interface (2) As’ad Djamalilleil
Instalasi JME & Uji Coba As’ad Djamalilleil
Modul 9: antarmuka grafis (GUI) dalam window
Java2 Micro Editon (J2ME)
STRING Pemrograman Object Oriented dengan JAVA Teknik Informatika-UMM.
Mendapatkan input dari keyboard
Mendapatkan Input dari Keyboard
PROGRAM APLIKASI MOBILE EMHA TAUFIQ LUTHFI PERTEMUAN 3.
Struktur Kode Aplikasi Java (1)
As’ad Djamalilleil Function (method) As’ad Djamalilleil
Pemrograman Aplikasi Bergerak
PEMOGRAMAN APLIKASI BERGERAK (Java ME)
WITH FANDI SUSANTO S.SI. Pemrograman Aplikasi Bergerak By Fandi Susanto S.Si.
PERTEMUAN III SINTAK LANJUT VB
Pemrograman Database Nyimas Artina, S.Kom, M.Si.
Komponen-Komponen dalam J2ME
Company LOGO PEMOGRAMAN APLIKASI BERGERAK (Java ME) “Skill to do comes of doing. “ (Ralph Waldo Emerson)
Company LOGO PEMOGRAMAN APLIKASI BERGERAK (Java ME)
MIDP (MIDlet) dan Tools
PROGRAM APLIKASI MOBILE EMHA TAUFIQ LUTHFI PERTEMUAN 5 (18 APRIL 2011)
Struktur Data List Linear : Linked List (Single Linkedlist)
Company LOGO PEMOGRAMAN APLIKASI BERGERAK (Java ME) Nyimas Artina.
Company LOGO PEMOGRAMAN APLIKASI BERGERAK (Java ME) Nyimas Artina.
LABEL Sesuai dengan namanya, object yang biasanya menampilkan teks tertentu seperti: judul,keterangan, dan Iain-Iain. Label tidak memiliki data source,
Exceptional Pendahuluan Bugs dan error dalam sebuah program sangat sering muncul meskipun program tersebut dibuat oleh programmer berkemampuan tinggi.
PROGRAM APLIKASI MOBILE EMHA TAUFIQ LUTHFI PERTEMUAN 2.
PROGRAM APLIKASI MOBILE EMHA TAUFIQ LUTHFI PERTEMUAN 4 (12 APRIL 2011)
Try, Catch, Finally Throws
Command line argument.
PERTEMUAN 5 TextField merupakan turunan Item yang bisa menampung teks dan mengedit teks tersebut. TextField mempunyai ukuran maksimum, label dan format.
High Level User Interface
MIDP High-Level User Interface
Field Name / Nama Field Data Type / Tipe Data
Command line argument.
Tipe Data, Variabel, dan Operator
Form & Item Oleh : Oman Somantri S.Kom
MIDlet User Interface (2)
Struktur Kode Program MIDlet
As’ad Djamalilleil Komponen Class Item (2) As’ad Djamalilleil
Membangun User Interface
As’ad Djamalilleil Komponen Class Item (1) As’ad Djamalilleil
As’ad Djamalilleil Komponen Class Item (3) As’ad Djamalilleil
Review Materi Java Fundamental
As’ad Djamalilleil Class List As’ad Djamalilleil
Tipe Data, Variabel, dan Operator
MIDlet User Interface (3)
Mobile Teknologi Pertemuan 3
Instalasi JME & Uji Coba
antarmuka grafis (GUI) dalam window
Pemrograman Berorientasi Objek
Tipe Data, Variabel, dan Operator
Komponen table Ms. Access
Transcript presentasi:

Komponen Class Item (1) As’ad Djamalilleil

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()

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"));

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); }

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"); }

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

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

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

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

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);

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

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

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

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());

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

ConstraintNilaiKeterangan TextField.ANY0Membolehkan karakter apapun untuk diinput TextField. ADDR1Hanya dapat diinput dengan alamat 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

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

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. ADDR

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); }

public void startApp() { frm = new Form("Demo TextField"); tf = new TextField(null, null, 255, 0); tf.setLabel(" "); tf.setConstraints(TextField. ADDR | TextField.UNEDITABLE); frm.append(tf); disp.setCurrent(frm); } public void destroyApp(boolean unconditional) { } public void pauseApp() { }

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

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

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); }

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); }

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() { }

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( ) + ">"); }

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