Class TextBox merupakan turunan dari class Screen yang merepresentasikan sebuah kotak untuk mengisi teks.
Konstruktor class TextBox adalah sebagai berikut:
TextBox(String title, String text, int maxSize, int constraints);
Agar lebih jelas untuk memahami tentang class TextBox berikut contoh programnya:
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
67
68
| import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
public class MIDTextBox extends MIDlet implements CommandListener {
private Display display;
private TextBox txt;
private Form form;
private Alert alert;
private Command cmdExit;
private Command cmdSetText;
private Command cmdInsertText;
private Command cmdClearText;
private Command cmdInfoText;
private Command cmdBack;
public MIDTextBox() {
display = Display.getDisplay(this);
txt = new TextBox("Contoh Midlet TextBox", null, 256, TextField.ANY);
cmdExit = new Command("Exit", Command.EXIT, 1);
cmdSetText = new Command("Set Text", Command.SCREEN, 2);
cmdInsertText = new Command("Insert", Command.SCREEN, 2);
cmdInfoText = new Command("Info Text", Command.SCREEN, 2);
cmdBack = new Command("Back", Command.BACK, 2);
txt.addCommand(cmdExit);
txt.addCommand(cmdSetText);
txt.addCommand(cmdInsertText);
txt.addCommand(cmdInfoText);
txt.setCommandListener(this);
}
public void startApp() {
display.setCurrent(txt);
}
public void pauseApp() {
}
public void destroyApp(boolean unconditional) {
}
public void commandAction(Command c, Displayable d) {
if (c == cmdExit) {
destroyApp(true);
notifyDestroyed();
} else if (c == cmdSetText) {
txt.setString("Contoh Mengeset Text dalam TextBox");
} else if (c == cmdInsertText) {
txt.insert("Text Sisipan", 0);
} else if (c == cmdClearText) {
if (txt.size() > 0) {
txt.delete(0, txt.size());
}
} else if (c == cmdInfoText) {
form = new Form("Informasi Text");
form.append("Teks Aktif: " + txt.getString() + "\n");
form.append("Jumlah Karakter: " + txt.size() + "\n");
form.append("Posisi cursor: " + txt.getCaretPosition());
form.addCommand(cmdBack);
form.setCommandListener(this);
display.setCurrent(form);
} else if (c == cmdBack) {
display.setCurrent(txt);
}
}
} |
Hasil program di atas adalah sebagai berikut:
Read more…
Class List merupakan turunan dari class Screen. Class ini berfungsi untuk menampilkan daftar item pilihan yang dapat diakses denagn cara menscroll. Untuk memilih item yang diinginkan dengan menekan tombol select atau menggunakan Command.
Bentuk constructor List adalah sebagai berikut:
- List(String title, int listType)
- List(String title, int listType, String[] choices, Image[] images)
Daftar method clas List yang digunakan untuk memanipulasi item adalah:
|
Nama Method
|
Kegunaan
|
| append() |
Menambah item dan menempatkannya pada posisi terakhir. |
| insert() |
Menambah item dan menempatkannya di posisi sebelum item yang aktif(item yang sedang dipilih) |
| delete() |
Menghapus item yang sedang dipilih. |
| deleteAll() |
Menghapus semua item yan gterdapat pada objek List. |
Parameter choices digunakan untuk melewatkan item-item yang diisikan, sedangkan images digunakan untuk menyimpan daftar gambar (icon) yang akan ditampilkan.
Dalam class List ada tiga macam tipe:
| Tipe |
Keterangan |
| EXCLUSIVE |
List ini berbentuk radio button. User hanya dapat memilih satu pilihan. |
| MULTIPLE |
List berupa list yang didalamnya dilengkapi dengan ChecBox. User dapat memilih lebih dari satu pilihan. |
| IMPLICITE |
List standar yang biasa digunakan untuk menampilkan item pilihan. |
Untuk mengetahui gambar-gambar mana yang dipilih, class List mendefinisikan method-method sebagai berikut:
public int getSelectedIndex()
public void getSelectedFlags(boolean[] selected)
public boolean isSelected(int elemenNum)
Sebelum memulai menuliskan program kita siapkan dulu icon yang akan dimunculkan pada List. Format gambar yang digunakan untuk icon adalah PNG. Berikut icon yang yang akan digunakan:
| Nama File |
Images |
| register.png |
 |
| tools.png |
 |
| wizard.png |
 |
| contact.png |
 |
| help.png |
 |
Read more…
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 |
Read more…
Agar sebuah tombol dapat berfungsi, maka event yang terjadi pada tombol harus di tangkap.
Program diatas ketika di klik tombol Exit belum dapat keluar dari program.
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
| import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
public class EventCommand extends MIDlet implements CommandListener{
private Display display;
private TextBox mainScreen;
private Command cmdExit;
public EventCommand(){
display = Display.getDisplay(this);
mainScreen = new TextBox("Hello", "Hello World", 512, 1);
cmdExit = new Command("Exit", Command.EXIT, 1);
mainScreen.addCommand(cmdExit);
mainScreen.setCommandListener(this);
}
public void startApp() {
display.setCurrent(mainScreen);
}
public void pauseApp() {
}
public void destroyApp(boolean unconditional) {
}
public void commandAction(Command c, Displayable d) {
if (c==cmdExit){
destroyApp(false);
notifyDestroyed();
}
}
} |
Hal-hal yang harus disertakan dalam menangkap sebuah event adalah:
- … implement Command Listener
- … setComamndListener
- … commandAction
Catatan:
Ketika menambahkan implement CommandListener maka akan terdapat pesan kesalahan. Kesalahan tersebut terjadi karena jika menggunakan interface Command Listener harus disertai dengan method commandAction.
Aksi yang akan terjadi pada event di atur pada method commandAction. Pada aplikasi ini ketika ditekan tombol “Exit”, maka akan keluar dari program.
public void commandAction(Command c, Displayable d) {
if (c==cmdExit){
destroyApp(false);
notifyDestroyed();
}
}
Hasil running program di atas adalah:

Sebelum diklik "Exit"

Setelah diklik "Exit"
Tombol pada sebuah aplikasi sangat penting. Tombol biasanya digunakan untuk mengendalikan jalannya program. Pada program ini kita akan menambahkan tombol pada aplikasi J2ME.
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
| import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
public class AddCommand extends MIDlet{
private Display display;
private TextBox mainScreen;
private Command cmdExit;
public AddCommand(){
display = Display.getDisplay(this);
mainScreen = new TextBox("Hello", "Hello World", 512, 1);
cmdExit = new Command("Exit", Command.EXIT, 1);
mainScreen.addCommand(cmdExit);
}
public void startApp() {
display.setCurrent(mainScreen);
}
public void pauseApp() {
}
public void destroyApp(boolean unconditional) {
}
} |
Mendefinisikan tombol pada J2ME menggunakan class Command. Berikut mendefinisikan tombol bernama cmdExit:
public class AddCommand extends MIDlet {
...
private Command cmdExit;
Membuat bentuk instant cmdExit dan menambahkannya kedalam Class mainScreen. Class main screen harus turunan dari class Displayable.
public AddCommand(){
...
cmdExit = new Command("Exit", Command.EXIT, 1);
mainScreen.addCommand(cmdExit);
}
Tampilan program di atas adalah sebagai berikut

Tombol Exit Muncul pada Bagian Kiri