User Interface pada J2ME
Satu hal terpenting dalam sebuah aplikasi adalah Graphical User Interface (GUI). GUI dapat dimanfaatkan sebagai media input dalam sebuah aplikasi.
Class-class untuk membangun GUI dalam MIDP disimpan dalam lcdui (javax.microedition.lcdui), sehingga agar dapat memanfaatkan class tersebut dengan mengimport paketnya.
Struktur GUI dalam MIDP
GUI di dalam MIDP dibagi menjadi dua bagian, yaitu: high-level API (yang didasarkan pada penbentukan window) dan low-level API (yang didasarkan pada pembentukan canvas dan pixel). Penggunaan high-level API lebih mudah disbanding mengunakan low-level API untuk membangun sebuah interface pada suatu aplikasi. Namun dengan menggunakan low level API lebih leluasa dalam mendesain sebuah interface.
Model high-level API menyediakan class-class standar yang digunakan untuk membangun UI (User Interface) seperti component Form, TextBox, List, Alert. Model High-level mengimplementasikan class-class yang diturunkan dari class Screen.
Model Low-level API memberikan akses yang kepada programmer untuk melakukan control terhadap tampilan layer, termasuk pengembaran menggunakan pixel, pembentukan bentuk geometri (segitiga, segiempat,lingkaran,elips, arc, dll). Model ini sering digunakan untuk membuat game. Karena model ini dapat membuat bentuk tek graphic yang lebih spesifik sesaui dengan keinginan. Model ini juga dapat membaca tombol-tombol yang ditekan oleh user.
Dalam paket lcdui yang dimport menggunakan:
import javax.microedition.lcdui.*;
Paket ini terdiri dari interface dan class.
Tabel daftar interface:
| Interface | Keterangan |
| Choice | Mengimplementasikan sejumah item pilihan yang didefinisikan. |
| CommandListener | Menerima event-event level tinggi. |
| ItemStateListener | Menerima event yang mengindikasikan perubahan keadaan dari item yang terdapat pada obyek Form |
Daftar kelas paket lcdui:
| Class | Keterangan |
| Alert | Menampilkan pesan ke user untuk periode waktu tertentu |
| AlertType | Mendefinisikan tipe objek Alert yang akan ditampilkan |
| Canvas | Class yang digunakan untuk aplikasi yang membutuhkan event-event rendah seperti game dan untuk mengambar dilayar. |
| ChoiceGroup | Meyajikan sekumpulan elemen yang dapat dipilih yang dimasukkan di dalam Form. |
| Command | Konstruksi yang mebungkus informasi-informasi yang dilakukan oleh user. |
| CustomItem | Membuat elemen user interface baru yang ditempatkan pada sebuah Form. |
| DateField | Komponen yang digunakan untuk menampilkan tanggal dan waktu. |
| Display | Manager tampilan |
| Displayable | Objek yang memiliki kemampuan ditampilkan pada layar. |
| Font | Mengatur huruf yang akan ditampilkan ke layar. |
| Gauge | Tampilan grafis yang digunakan untuk memvisualisasikan nilai tertentu yang diletakkan pada Form. |
| Graphics | Menyediakan kemampuan menggambar pada sebuah Canvas. |
| Image | Digunakan untuk menyimpan data gambar. |
| ImageItem | Meyediakan kotrol layout untuk gambar-gambar yang ditempatkan pada sebuah Form. |
| Item | Kelas dasar untuk menempatkan komponen-komponen yang dapat ditempatkan pada sebuah Form. |
| List | Layar yang berisi daftar pilihan |
| Screen | Kelas dasar semua komponen layar dalam high-level user interface. |
| StringItem | Item yang berisi string yang kemudian ditempatkan pada Form. |
| TextBox | Layar yang mengijinkan user memanipulasi teks dan bisa juga dijadikan media input. |
| TextField | Komponen untuk memasukkan teks di atas Form. |
| Ticker | Bagian teks yang berjalan terus-menerus di atas layar. Ticker tidak dapat ditempelkan pada Canvas. |
Arsitektur LCDUI
Beriku hierarki class-class yang diambil dari pake lcdui (javax.microedition.lcdui)

Hierarki Class LCDUI
Dari class-class di atas yang dapat langsung ditampilkan ke layar hanya turunan dari class Displayable.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 | import javax.microedition.lcdui.*; import javax.microedition.midlet.*; public class MIDAlert extends MIDlet implements CommandListener { private Display display; private Form form; private Alert alert; private Command cmdExit; private Command cmdAlert; public MIDAlert() { display = Display.getDisplay(this); //membuat objek Form form = new Form("Demo Alert"); //membuat objek Command cmdExit = new Command("Exit", Command.EXIT, 1); cmdAlert = new Command("Alert", Command.SCREEN, 2); //menambahkan objek Command "cmdExit" dan "cmdAlert" form.addCommand(cmdExit); form.addCommand(cmdAlert); //menset event form.setCommandListener(this); } public void startApp() { //menentukan objek yang ditampilkan di layar display.setCurrent(form); } public void pauseApp() { } public void destroyApp(boolean unconditional) { } public void commandAction(Command c, Displayable d) { if (c == cmdAlert) { //memanggil method tampilAlert tampilAlert(); } else if (c == cmdExit) { destroyApp(true); notifyDestroyed(); } } private void tampilAlert() { try { //membuat objek Alert dan menentukan String yang ditampilkan alert = new Alert("Informasi", "Pesan ini tampil di User", null, null); //menentukan tipe Alert alert.setType(AlertType.ALARM); //menentukan lamanya Alert tampil alert.setTimeout(5000); //menampilkan Alert display.setCurrent(alert); } catch(Exception e) { System.out.println(e.getMessage()); } } } |
Sebuah aplikasi biasanya ketika menampilkan pesan menggunakan icon atau gambar tertentu, berikut tambahan kode program agar pesan yang ditampilkan di atas dapat menampilkan pesan yang disertai dengan gambar.
Hasil output dari program di atas adalah:

Sesudah dan sebelum diklik Alert
Ubahlah method tampilAlert() menjadi seperti berikut:
private void tampilAlert() {
try {
//membuat objek Image
Image img = Image.createImage(“/globe.png”);
//membuat objek Alert dan menentukan String yang ditampilkan
alert = new Alert(“Informasi”, “Pesan ini tampil di User”, img, null);
//menentukan tipe Alert
alert.setType(AlertType.ALARM);
//menentukan lamanya Alert tampil
alert.setTimeout(5000);
//menampilkan Alert
display.setCurrent(alert);
} catch(Exception e) {
System.out.println(e.getMessage());
}
}
private void tampilAlert() {
try {
//membuat objek Image
Image img = Image.createImage("/globe.png");
//membuat objek Alert dan menentukan String yang ditampilkan
alert = new Alert("Informasi", "Pesan ini tampil di User", img, null);
//menentukan tipe Alert
alert.setType(AlertType.ALARM);
//menentukan lamanya Alert tampil
alert.setTimeout(5000);
//menampilkan Alert
display.setCurrent(alert);
} catch(Exception e) {
System.out.println(e.getMessage());
}
}
Tampilan ketika ditambahkan gambar pada Alert.
Tampilan Alert setelah ditambah image
pak andi tanya kalau buat tabbed form di j2me gimanaya pak ??
trus kalo tabbed formnya dinamyc bisa gak ya pak ??
kaya aplikasi chattingnya ebuddy itu lo pak, kalo ada yang mau megecat sama user tabbed formnnya namab satu gitu.
Saya blm pernah membuat. Jadi blm bisa kasih solusi.
pak mau tanya kalo menampilkan GAMBAR dari sebuah web untuk ditampilkan pada aplikasi j2me yang dikasus ini sebagai clientnya gmn ya pak,kan biasanya cuma berupa teks saja…tolong bantuannya….
Coba baca disini:
http://www.andisun.com/tutorials/j2me-programming/j2me-menampilkan-gambar
pak mau tanya, kalo bwt combo box tapi datanya koneksi pake mysql gmana??makasih..
mas maw nany mas ..saya ini lagi tugas TA .. nah jadi permasalahan saya tu ..
dalam TA saya .. misal ada data baru masuk k database saya menggunakan d sini php (untuk bahasa permerograman ) setelah itu saya mawny si j2me bisa ke detect juga inputnya .. jadi kalau ada input masuk di j2me keluar outpup sebagai object???
cara untuk menampilkan object di hpnya g mana y mas ??? mohon pencerahanya terima kasih ..