Archive

Posts Tagged ‘J2ME’

J2ME: Menampilkan Gambar dengan Class Canvas

January 15th, 2010 myandisun No comments

Salah satu kelebihan class Canvas adalah dapat menampilkan gambar. Pada modul ini kita akan membahas kode program untuk menampilkan file gambar di layar handphone.

Pertama anda siapkan file gambar yang akan ditampilkna. Biasanya file gambar yang ditampilkan dalam layar HP bertipe “PNG”.

Siapkan gambar degan nama dan extensi berikut: “btw.png,globe.png,ipod.png,printer.png,sepeda.png”
File di atas dapat diganti sesuai dengan keinginan kita.

MIDShowImage.java

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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
import javax.microedition.midlet.*;
 
import javax.microedition.lcdui.*;
 
public class ShowImageNext extends MIDlet {
 
private Display display;
 
private Canvas canvas;
 
private Command cmdNExt;
 
private int counter = 0;
 
public ShowImageNext() {
 
canvas = new CanvasShowImg();
 
}
 
public void startApp() {
 
display.getDisplay(this).setCurrent(canvas);
 
}
 
public void pauseApp() {
 
}
 
public void destroyApp(boolean unconditional) {
 
}
 
//End of MIDlet
 
public class CanvasShowImg extends Canvas {
 
private Image currentImg;
 
public CanvasShowImg() {
 
}
 
protected void paint(Graphics g) {
 
try {
 
//set background to white
 
g.setColor(0xFFFFFF);
 
g.fillRect(0, 0, this.getWidth(), this.getHeight());
 
String[] option = {"/btw.png", "/globe.png", "/ipod.png", "/printer.png", "/sepeda.png"};
 
currentImg = Image.createImage(option[counter]);
 
System.out.println(counter);
 
} catch (Exception e) {
 
e.getMessage();
 
}
 
g.drawImage(currentImg, getWidth() / 2, getHeight() / 2, Graphics.VCENTER | Graphics.HCENTER);
 
}
 
public void keyPressed(int keycode) {
 
switch (getGameAction(keycode)) {
 
case Canvas.RIGHT:
 
counter = counter + 1;
 
repaint();
 
break;
 
case Canvas.LEFT:
 
break;
 
default:
 
}
 
}
 
}
 
}

Hasil program di atas adalah sebagai berikut:

Program menampilkan gambar

Program menampilkan gambar

Keterangan:

Klik panah ke kanan untuk melihat gambar selanjutnya.

J2ME: Form dan Ticker

September 11th, 2009 myandisun 2 comments

Apabila sedang menyaksikan tayangan pada televisi akan sering terlihat berita pada bagian bawah layar yang berupa tulisan berjalan. Atau pada acara yang berhubungan dengan bursa efek akan bisa dilihat juga berupa tulisan berjalan yang memberikan informasi mengenai keadaan saham pada saat itu. Untuk membuat “tayangan” seperti itu pada layar ponsel dapat digunakan class Ticker.

Class Ticker tampak seperti animasi teks berjalan terus menerus dari kanan ke  kiri. Untuk menampilkan obyek Ticker yang telah dibuat, kita perlu memanggil method setTicker() yang didefinisikan pada class Displayable. Ini artinya, method tersebut dapat kita panggil dari obyek turunan dari kelas Screen maupun Canvas.

Pada modul ini akan mengekplorasi ticker. Disini akan membuat obyek Ticker dan mengkaitkannya dengan obyek Form.

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
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
 
public class MIDTicker extends MIDlet implements CommandListener {
	private Form form;
	private Display display;
	private Ticker ticker;
	private Command cmdKeluar;
 
	public MIDTicker() {
		cmdKeluar = new Command("Keluar", Command.EXIT, 1);
		ticker = new Ticker("Saham TELKOM naik 10 point");
		form = new Form("Ticker");
		form.setTicker(ticker);
		form.addCommand(cmdKeluar);
		form.setCommandListener(this);
	}
 
	public void startApp() {
		display = Display.getDisplay(this);
		display.setCurrent(form);
	}
 
	public void pauseApp() {
	}
 
	public void destroyApp(boolean unconditional) {
	}
 
	public void commandAction(Command c, Displayable d) {
		if (c == cmdKeluar) {
			destroyApp(false);
			notifyDestroyed();
		}
	}
}

Berikut keterangan kode program di atas:

Untuk membuat objek ticker digunakan baris berikut :

ticker = new Ticker("Ini text berjalan yang akan ditampilan pada layar ");

Sedangkan untuk menambahkan objek ticker pada form digunakan method setTicker(objekTicker), seperti di bawah ini :

form.setTicker(ticker);

Berbeda pada ponsel lainnya, pada Siemens, teks dari objek ticker menempati baris sama dengan title dari form. Selain itu, teks pada objek ticker hanya berjalan setelah layar saja.

midlet_ticker01

1.1.    Setting Teks pada Ticker

Pada class Ticker terdapat dua method yaitu getString() dan setString(String str). Berikut adalah contoh untuk aplikasi yang memberikan fasilitas bagi user untuk mengubah teks yang ditampilkan oleh objek ticker. Berikut adalah contoh dari aplikasi tersebut. Aplikasi ini dapat memodifikasi aplikasi ticker sebelumnya.

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
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
 
public class MIDTickerLanjut extends MIDlet implements CommandListener {
	private Form form;
	private Display display;
	private Ticker ticker;
	private Command cmdKeluar;
	private Command cmdTicker;
	private TextField textField;
 
	public MIDTickerLanjut() {
		cmdKeluar = new Command("Keluar", Command.EXIT, 1);
		cmdTicker = new Command("Set Ticker", Command.SCREEN, 2);
		textField = new TextField("Teks : ", "", 50, TextField.ANY);
		ticker = new Ticker("");
		form = new Form("Ticker");
		form.append(textField);
		form.addCommand(cmdKeluar);
		form.addCommand(cmdTicker);
		form.setCommandListener(this);
	}
 
	public void startApp() {
		display = Display.getDisplay(this);
		display.setCurrent(form);
	}
 
	public void pauseApp() {
	}
 
	public void destroyApp(boolean unconditional) {
	}
 
	public void commandAction(Command c, Displayable d) {
		if (c == cmdKeluar) {
			destroyApp(false);
			notifyDestroyed();
		}
		if (c == cmdTicker) {
			form.setTicker(ticker);
			ticker.setString(textField.getString());
		}
	}
}

Aplikasi ini merupakan hasil modifikasi dari MIDTickerLanjut.java. Objek yang ditambahkan adalah objek textField yang akan digunakan oleh user untuk memasukkan teks yang akan digunakan oleh objek ticker. Pada konstruktor hanya dilakukan pembuatan objek ticker dan belum ditambahkan pada objek form. Setelah “tombol” Ticker ditekan baru objek ticker ditambahkan pada form dengan baris seperti berikut ini:

if (c == cmdTicker) {
  form.setTicker(ticker);
  ticker.setString(textField.getString());
}

Untuk menampilkan teks yang diisikan user pada textField digunakan baris berikut:

ticker.setString(textField.getString());

midlet_ticker02

Mobile Tracking Memanfaatkan Teknologi Global Positioning System (GPS) dan General Packet Radio Service (GPRS)

September 8th, 2009 myandisun 4 comments

by: Andi Sunyoto

ABSTRACT

An integration of a GPS receiver module and GPRS for monitoring and tracking of vehicle position has been designed and implemented. The GPS receiver module is a equipment able to generate position data, but it unable to send the data position to the control system. A GPRS technology in mobGPile device can transmit data over internet, so it can be used to transmit object position to control system in order to be monitored.

This research aims to build a system for monitoring and tracking the vehicle’s position. The system are divided into three parts: block I, block II and block III. Block I consist of two devices : A GPS receiver module and a cellular phone running a java application (J2ME). The application is used to stream, parse and processed NMEA data from the GPS receiver module before transmiting it to the control system (block II) over a GPRS connection. Block II consists of a web server and a database server for catching the data position sent from block I and store it in database server. Block III consists of visualization and monitoring application to visualize vehicle’s positions over the digital map. The last position of the vehicle data are taken from the database server.

The result of this research is an integration of two technologies that can be used to monitor and track of vehicles position. The success of the monitoring and tracking are dependent on : the NMEA data stream from the GPS receiver module, the accuracy of GPS receiver module and the digital map used by the system.

Key words : GPS, GPRS, NMEA, Tracking, J2ME

1.  PENGANTAR

Kasus yang membutuhkan mekanisme pemantauan posisi kendaraan semakin banyak, misalkan kasus dalam perusahaan taksi, distribusi barang, penyalahgunaan pemakaian mobil dinas dan sistem pengiriman BBM, barang pada perusahaan jasa.

Perusahaan maupun instansi biasanya menggunakan media komunikasi radio untuk mengetahui dengan menanyakan kepada pengemudi dimana posisinya. Jawaban yang diberikan pengemudi dijadikan dasar untuk mengetahui posisi kendaraan tersebut. Cara ini membuat data yang diberikan kadang tidak akurat, karena tergantung dari jawaban dari pengemudi.

Kemajuan teknologi penentuan lokasi seperti GPS (Global Positioning System) berkembang pesat dengan tingkat akurasi yang semakin teliti, bermacam variasi dan semakin murah. Posisi dapat diketahui jika membawa alat yang diberi nama GPS receiver yang berfungsi untuk menerima sinyal dari satelit GPS. GPS receiver berbentuk modul menghasilkan data NMEA yang berisi data posisi.

Perkembangan jaringan teknologi (wireless) khususnya handphone semakin pesat. Sebuah handphone tipe tertentu sudah dilengkapi fitur Java dan GPRS. Fitur Java memungkinkan menambahkan aplikasi yang dibangun dengan J2ME. Teknologi GPRS (General Packet Radio Service) dapat digunakan sebagai media pengiriman data secara nirkabel melalui koneksi internet.

Tracking kendaraan adalah mekanisme bagaimana memantau keberadaan kendaraan yang bergerak dan jalurnya di muka bumi. Pengertian bergerak dalam perpektif geografi adalah perpindahan posisi suatu obyek dari suatu koordinat ke koordinat lain. Tracking diperoleh dengan merekam data perpindahan tersebut. Penerapan sistem ini, pihak operator tidak perlu menanyakan ke pengemudi tentang posisinya.

Modul GPS receiver mempunyai karekteristik dapat menghasilkan informasi data posisi tetapi tidak dapat mengirimkan data tersebut dengan jarak jauh. GPRS sebagai teknologi komunikasi wireless dapat mengirimkan data melalui jaringan internet. Karakteristik yang dimiliki oleh GPS dan GPRS dapat diintegrasikan untuk membangun sistem monitoring posisi dan tracking kendaraan.

2.  CARA PENELITIAN

Penelitian ini secara garis bersar dibagi menjadi beberapa blok, yaitu blok I, blok II, dan blok III. Pembagian masing-masing blok dapat dilihat pada gambar berikut.

Pembagian komponen blok sistem

Pembagian komponen blok sistem

2.1 Komponen Blok I

Pada Blok I berisi seperangkat GPS dan handphone. Blok I bertugas mengirimkan data posisi yang dibaca dari GPS ke Blok II secara otomatis.

Proses komponen blok I

Proses komponen blok I

Modul GPS receiver dan handphone dikoneksikan menggunakan bluetooth, kemudian data posisi dari modul GPS receiver diambil handphone melalui aplikasi J2ME. Aplikasi ini pertama mengambil data NMEA tipe RMC. Data tersebut kemudian di parsing untuk dipisahkan antara data longitude, latitude dan kecepatan dikirimkan ke Web Server melalui jaringan GPRS. Gambar proses yang terjadi di Blok I dapat dilihat pada gambar di atas.

2.2 Komponen Blok II

Blok II berisi Web server dan Database server yang berfungsi menerima data dari Blok I. Proses yang terjadi pada Blok II dapat dilihat pada gambar berikut.

Proses komponen blok II

Proses komponen blok II

Web server dilengkapi dengan pemrograman internet server-side scripting ASP untuk menangkap data posisi (longitude dan latitude), kecepatan dan status yang dikirim dari Blok I.

Read more…

Categories: Jurnal Tags: , , , ,

J2ME: Pengaksesan File Multimedia Pada Mobile Device dengan MMAPI

September 3rd, 2009 myandisun No comments

By: Andi Sunyoto

Abstraksi

Mobile Media API (MMAPI) is an optional package yang mendukung aplikasi multimedia di peralatan J2ME. Ini adalah standar Java yang ditetapkan oleh Java Community Process (JCP) dalam JSR 135. Standar ini didesain fleksibel jalan di beberapa protokol dan format; contoh pengimplementasiannya tidak harus dengan protokol HTTP atau Real-Time Transport Protokol (RTP) saja, atau media dengan format MP3. MIDI atau MPEG-4 saja.

Pengantar MMAPI

Artikel ini menyediakan suatu pengenalan dari arsitektur MMAPI dan API, yang dilengkapi suatu contoh kode yang menunjukkan bagaimana MMAPI dapat digunakan untuk membangun aplikasi-aplikasi multimedia Wireless Java.

MMAPI sudah dirancang untuk berjalan di setiap virtual machine berbasis J2ME, termasuk CDC dan CLDC.

Pengembang MMAPI dirancang dengan fitur sebagai berikut:

  • Mendukung untuk Tone Generation, Playback, and Recording of Time-Based Media: paket ini mendukung setiap isi audio dan video yang berbasis waktu (time-based).
  • Small Footprint: MMAPI bekerja pada batas-batas memori yang tegas dari alat-alat CLDC.
  • Protocol- and Content-Agnostic: API tidak dibiaskan ke tipe atau protokol yang spesifik.
  • Subsettable: pengembang dapat mendukung tipe tertentu.
  • Extensible: Fitur baru dapat ditambahkan dengan mudah tanpa menghilangkan kemampuan sistem yang sebelumnya. Lebih penting lagi, format-format tambahan dapat dengan mudah didukung, dikbuat framework dan ditempatkan untuk kontrol tambahan.
  • Options for Implementers: API menawarkan fitur untuk tujuan-tujuan yang tertentu. API didesain dan dirancang untuk mengizinkan developer meninggalkan beberapa fitur jika mereka tidak bisa didukung.

Multimedia Processing

Ada dua bagian untuk mengolah multimedia:

  • Protocol Handling: membaca data dari suatu sumber seperti sebuah file atau suatu streaming server ke dalam sistem media-processing.
  • Content Handling: menguraikan (parsing) atau decoding data dan merendernya menjadi sebuah keluaran seperti spiker audio atau layar video.

Agar dapat memfasilitasi operasi di atas, API menyediakan dua tipe obyek high-level:

  • DataSource mengencapsulasi penanganan protokol dengan penyembunyian detail bagaimana data itu dibaca dari sumbernya. Method obyek mempunyai berguna yang memungkinkan obyek Player menangani  isi.
  • Player membaca data dari DataSource, memprosesnya merendernya untuk ditampilkan di piranti. Obyek ini menyediakan metoda untuk mengendalikan media untuk playback, termasuk metoda untuk mengendalikan tipe tertentu mengakses fitur tipe media tertentu..

MMAPI menetapkan obyek ketiga, sebuah mekanisme yang dikenal sebagai Manager yang memungkinkan aplikasi membuat Players dari DataSources, dan dari InputStreams.

Arsitektur MMAPI

Arsitektur MMAPI

Read more…

J2ME: Memanfaatkan Class TextBox

July 29th, 2009 myandisun 4 comments

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…

Memanfaatkan Class List

July 23rd, 2009 myandisun 1 comment

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 register
tools.png tools
wizard.png wizard
contact.png contact
help.png help

Read more…

User Interface pada J2ME

July 23rd, 2009 myandisun 4 comments

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…

Mengelola Tombol (Object Command)

July 23rd, 2009 myandisun No comments

Suatu aplikasi yang menggunakan object Command terkadang memerlukan penambahan tombol dan pengurangan tombol pada saat run-time. Jadi sebuah object Command dapat di tambahkan maupun di kurangkan.

Mendeklarasikan Obyek Command

Bentuk umum membuat object Command adalah:

Command(label, commandType, priority)

Contoh:

cmdExit = new Command(“Exit”, Command.EXIT, 0);

Berikut macam-macam tipe Command yang dapat dipakai:

Berikut daftar tipe Command yang dapat digunakan:

Tipe

Nilai

Keterangan

SCREEN

1

Tipe Command yang diaplikasikan untuk layer (screen) tertentu.
BACK

2

Tipe Command yang digunakan untuk kembali ke layar sebelumnya.
CANCEL

3

Tipe Comamnd yang digunakan untuk jawaban negatif pada dialog box.
OK

4

Tipe Command untuk jawaban positif pada dialoag box.
HELP

5

Tipe Command yang digunakan untuk menampilkan help.
STOP

6

Tipe Command yang akan menghentikan proses-proses yang sedang berjalan.
EXIT

7

Tipe Command yang digunakan untuk keluar dari aplikasi.
ITEM

8

Tipe Command yang digunakan untuk menghubungkan aksi dalam suatu Command dengan item di dalam layar.

Menambah Obyek Command

Ada tulisan sebelumnya sudah banyak yang membahas tentang penambahan objek command pada objek lain seperti objek dari class List atau Form. Berikut contoh pengunaan obyek Command.

Untuk menambahkan obyek command menggunakan method  addComamnd().

Contoh:

frm.addCommand(cmdExit);

Menghapus Obyek Command

Obyek Command yang telah kita tambahkan di dalam obyek frm dapat dihapus dengan menggunakan method removeCommand().

Contoh:

frm.removeCommand(cmdOpen);

Contoh Program

Read more…

Menangkap Event pada Tombol

July 22nd, 2009 myandisun 2 comments

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:

  1. … implement Command Listener
  2. … setComamndListener
  3. … 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 di klik "Exit"

Sebelum diklik "Exit"

Setelah diklik "Exit"

Setelah diklik "Exit"

Menambah Tombol

July 22nd, 2009 myandisun No comments

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

Tombol Exit Muncul pada Bagian Kiri