Home > J2ME-Mobile Programming > User Interface pada J2ME

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

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

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

Tampilan Alert setelah ditambah image

Share and Enjoy:
  • Print
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google Bookmarks
  1. denugroho
    August 11th, 2009 at 12:27 | #1

    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.

  2. September 17th, 2009 at 00:49 | #2

    Saya blm pernah membuat. Jadi blm bisa kasih solusi.

  3. January 7th, 2010 at 03:50 | #3

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

  4. ahmad
    March 20th, 2010 at 09:51 | #5

    pak mau tanya, kalo bwt combo box tapi datanya koneksi pake mysql gmana??makasih..

  5. amoor
    April 9th, 2010 at 07:06 | #6

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

  1. No trackbacks yet.