Kamis, 18 Oktober 2012
Rabu, 03 Oktober 2012
Percobaan 2: High Level User Interface
Diposting oleh Iftah Khoiriyah di 01.44
Pada kesempatan kali ini saya akan membuat sebuah aplikasi pengisian nama, jenis kelamin, alamat, no telepon, email, dan tanggal lahir.
Berikut langkah-langkahnya:
import javax.microedition.lcdui.*;
import java.util.Date;
public class HLI extends MIDlet implements CommandListener {
Display display;
Form input;
Alert warning;
TextField nama, alamat, telp, email;
DateField tgl;
ChoiceGroup gender;
StringItem text;
Command exit = new Command("Exit", Command.EXIT, 1);
Command view = new Command("View", Command.OK, 1);
public HLI(){
input = new Form("Masuk Data");
input.addCommand(exit);
input.addCommand(view);
input.setCommandListener(this);
Date now = new Date();
nama = new TextField("Nama", "", 32, TextField.ANY);
gender = new ChoiceGroup("Gender", Choice.POPUP);
gender.append("Laki-Laki", null);
gender.append("Perempuan", null);
alamat = new TextField("Alamat", "", 32, TextField.ANY);
telp = new TextField("No Hp/telp", "", 32, TextField.PHONENUMBER);
email = new TextField("E-mail", "", 32, TextField.EMAILADDR);
tgl = new DateField("HarLah", DateField.DATE);
tgl.setDate(new Date());
input.append(nama);
input.append(gender);
input.append(alamat);
input.append(telp);
input.append(email);
input.append(tgl);
}
public void startApp(){
if (display == null){
display = Display.getDisplay(this);
display.setCurrent(input);
}
}
public void pauseApp(){
}
public void destroyApp(boolean unconditional){
}
public void commandAction(Command c, Displayable d) {
if(c == view){
input.deleteAll();
/*text = new StringItem("", "nama : "+nama.getString()+"\n"
+"gender : "+gender.getString(gender.getSelectedIndex())+"\n"
+"alamat : "+alamat.getString()+"\n"
+"nomer : "+telp.getString()+"\n"
+"email : "+email.getString()+"\n"
+"BDay : "+tgl.getDate());*/
if(nama.getString()==""){
warning = new Alert("Warning","Harus diisi semua!",null, AlertType.WARNING);
warning.setTimeout(warning.FOREVER);
display.setCurrent(warning);
}else if("".equals(alamat.getString())){
warning = new Alert("Warning","Harus diisi semua!",null, AlertType.WARNING);
warning.setTimeout(warning.FOREVER);
display.setCurrent(warning);
}else if(telp.getString()==""){
warning = new Alert("Warning","Harus diisi semua!",null, AlertType.WARNING);
warning.setTimeout(warning.FOREVER);
display.setCurrent(warning);
}else if(email.getString()==""){
warning = new Alert("Warning","Harus diisi semua!",null, AlertType.WARNING);
warning.setTimeout(warning.FOREVER);
display.setCurrent(warning);
}else {
text = new StringItem("", "nama : "+nama.getString()+"\n"
+"gender : "+gender.getString(gender.getSelectedIndex())+"\n"
+"alamat : "+alamat.getString()+"\n"
+"nomer : "+telp.getString()+"\n"
+"email : "+email.getString()+"\n"
+"BDay : "+tgl.getDate());
input.append(text);
display = Display.getDisplay(this);
display.setCurrent(input);
}
input.removeCommand(view);
input.addCommand(exit);
}
if (c == exit){
destroyApp(true);
notifyDestroyed();
}
}
}
6. Untuk menjalankannya, kilk kanan pada nama class-nya > Run As > Emulated J2ME Midlet.
7. Maka akan tampil emulator seperti gambar berikut:
8. Jika tidak diisi semua atau salah satu tidak diisi, maka akan muncul warning sebagai berikut:
9. Jika diisi semua, maka hasil akhirnya adalah sebagai berikut:
read more
Berikut langkah-langkahnya:
- Pastikan aplikasi eclipse telah terbuka
- Membuat project baru, caranya pilih file > new > project > J2ME > J2ME middle suit > Next > silahkan ketik nama projectnya misal HighLevel > Next > Finish
- Buat class baru, caranya pada nama project di klik kanan pilih new > other > J2ME > J2ME Midlet > Next > silahkan ketikkan Name-nya misal HLI > Finish
- Setelah itu silahkan copy source code yang ada dibawah ini
import javax.microedition.lcdui.*;
import java.util.Date;
public class HLI extends MIDlet implements CommandListener {
Display display;
Form input;
Alert warning;
TextField nama, alamat, telp, email;
DateField tgl;
ChoiceGroup gender;
StringItem text;
Command exit = new Command("Exit", Command.EXIT, 1);
Command view = new Command("View", Command.OK, 1);
public HLI(){
input = new Form("Masuk Data");
input.addCommand(exit);
input.addCommand(view);
input.setCommandListener(this);
Date now = new Date();
nama = new TextField("Nama", "", 32, TextField.ANY);
gender = new ChoiceGroup("Gender", Choice.POPUP);
gender.append("Laki-Laki", null);
gender.append("Perempuan", null);
alamat = new TextField("Alamat", "", 32, TextField.ANY);
telp = new TextField("No Hp/telp", "", 32, TextField.PHONENUMBER);
email = new TextField("E-mail", "", 32, TextField.EMAILADDR);
tgl = new DateField("HarLah", DateField.DATE);
tgl.setDate(new Date());
input.append(nama);
input.append(gender);
input.append(alamat);
input.append(telp);
input.append(email);
input.append(tgl);
}
public void startApp(){
if (display == null){
display = Display.getDisplay(this);
display.setCurrent(input);
}
}
public void pauseApp(){
}
public void destroyApp(boolean unconditional){
}
public void commandAction(Command c, Displayable d) {
if(c == view){
input.deleteAll();
/*text = new StringItem("", "nama : "+nama.getString()+"\n"
+"gender : "+gender.getString(gender.getSelectedIndex())+"\n"
+"alamat : "+alamat.getString()+"\n"
+"nomer : "+telp.getString()+"\n"
+"email : "+email.getString()+"\n"
+"BDay : "+tgl.getDate());*/
if(nama.getString()==""){
warning = new Alert("Warning","Harus diisi semua!",null, AlertType.WARNING);
warning.setTimeout(warning.FOREVER);
display.setCurrent(warning);
}else if("".equals(alamat.getString())){
warning = new Alert("Warning","Harus diisi semua!",null, AlertType.WARNING);
warning.setTimeout(warning.FOREVER);
display.setCurrent(warning);
}else if(telp.getString()==""){
warning = new Alert("Warning","Harus diisi semua!",null, AlertType.WARNING);
warning.setTimeout(warning.FOREVER);
display.setCurrent(warning);
}else if(email.getString()==""){
warning = new Alert("Warning","Harus diisi semua!",null, AlertType.WARNING);
warning.setTimeout(warning.FOREVER);
display.setCurrent(warning);
}else {
text = new StringItem("", "nama : "+nama.getString()+"\n"
+"gender : "+gender.getString(gender.getSelectedIndex())+"\n"
+"alamat : "+alamat.getString()+"\n"
+"nomer : "+telp.getString()+"\n"
+"email : "+email.getString()+"\n"
+"BDay : "+tgl.getDate());
input.append(text);
display = Display.getDisplay(this);
display.setCurrent(input);
}
input.removeCommand(view);
input.addCommand(exit);
}
if (c == exit){
destroyApp(true);
notifyDestroyed();
}
}
}
6. Untuk menjalankannya, kilk kanan pada nama class-nya > Run As > Emulated J2ME Midlet.
7. Maka akan tampil emulator seperti gambar berikut:
8. Jika tidak diisi semua atau salah satu tidak diisi, maka akan muncul warning sebagai berikut:
9. Jika diisi semua, maka hasil akhirnya adalah sebagai berikut:
Label: Mobile Computing
High Level User Interface
Diposting oleh Iftah Khoiriyah di 01.41
Tujuan mempelajari materi tentang High Level User Interface adalah:
- Mengetahui keuntungan dan kerugian dengan menggunakan high-level dan low-level UI classes
- Mengetahui desain MIDlets menggunakan komponen high-level UI
- Mengidentifikasi perbedaan sub-classes pada screen
- Mengetahui perbedaan item-item yang dapat dimasukkan kedalam sebuah object Form
Perbedaan High Level vs Low Level
Kapan menggunakan High-Level UI
- Saat membangun aplikasi text-based yang mudah
- Saat Anda ingin aplikasi Anda dapat dengan mudah dipertukarkan dengan berbagai macam peralatan (Portabilitas)
- Saat Anda ingin aplikasi Anda memiliki tampilan yang sama dengan komponen UI yang lain dari berbagai peralatan
- Saat Anda ingin kode Anda dapat menjadi sesedikit mungkin, ketika sebuah interaksi ditangani oleh API
Kapan menggunakan Low-Level UI
- Saat Anda memerlukan sebuah high-level untuk mengkontrol tampilan dari suatu aplikasi
- Saat aplikasi Anda membutuhkan tempat yang tepat dari elemen-elemen yang ada pada screen
- Saat membuat game secara grafik; meskipun Anda tetap dapat menggunakan highlevel UI pada menu game, hal tersebut lebih disarankan untuk membuat menu UI Anda sendiri untuk menghindari seamless atmosphere bagi para user
- Saat sebuah aplikasi membutuhkan akses ke low-level yang memiliki inputan seperti key presses
-Jika aplikasi Anda akan diimplementasikan pada layar navigasi Anda sendiri
Display
- Satu-satunya object untuk menampilkan sesuatu ke layar pada tiap MIDlet
- MIDlet dapat meminta refrence kepada object Display dengan menggunakan static Display.getDisplay(), untuk memberikan refrence pada instance dari MIDlet
- MIDlet akan memastikan bahwa object Display tidak akan berubah selama object dari MIDlet tersebut tersedia
Displayable
- Hanya satu displayable yang ditampilkan pada satu waktu
- Secara langsung, displayable tidak ditampilkan pada layar
- Sebuah displayable dapat ditampilkan dengan memanggil method setCurrent() dari Display instance
- Method setCurrent() harus dipanggil pada saat memulai aplikasi, dengan kata lain sebuah screen kosong akan ditampilkan atau aplikasi tersebut tidak akan dijalankan
Sebuah displayable dapat memiliki nama (title), beberapa perintah(command), commandListener dan Ticker.
Title
- Posisi dan penampilan dari title tersebut merupakan piranti spesifik yang hanya dapat ditentukan oleh peralatan dari aplikasi yang sedang dijalankan
- Sebuah title ditampilkan pada Displayable dengan memanggil setTitle()
Command
- Untuk menggantikan menu bar, MIDlet memiliki Commands
- Biasanya Command diimplementasikan sebagai soft key atau item dalam sebuah menu
- Object Command hanya berisi informasi tentang action yang harus dikerjakan pada saat Command diaktifkan
CommandListener
- CommandListener merupakan interface dengan single method:
void commandAction(Command command, Displayable displayable)
- Method commandAction() akan dipanggil jika Command dipilih
- CommandAction() harus dikembalikan dengan seketika, jika tidak maka pengeksekusian aplikasi akan diblock
Ticker
- Ticker adalah sebuah baris dari text yang dapat discrolling secara terus-menerus pada display
- Method konstruktor dari ticker menerima text string untuk ditampilkan.
- Hanya memiliki dua method lain, yaitu getter dan setter untuk text ini: String getString() dan void setString(String text)
Screen
Screen merupakan inti abstrak class yang digunakan untuk high-level UI ketika canvas merupakan Displayable abstrak class untuk low-level UI.
Item
Items merupakan komponen yang dapat diletakan kedalam container, seperti Form atau Alert. Sebuah item dapat memiliki property seperti dibawah ini:
read more
- Mengetahui keuntungan dan kerugian dengan menggunakan high-level dan low-level UI classes
- Mengetahui desain MIDlets menggunakan komponen high-level UI
- Mengidentifikasi perbedaan sub-classes pada screen
- Mengetahui perbedaan item-item yang dapat dimasukkan kedalam sebuah object Form
Perbedaan High Level vs Low Level
Kapan menggunakan High-Level UI
- Saat membangun aplikasi text-based yang mudah
- Saat Anda ingin aplikasi Anda dapat dengan mudah dipertukarkan dengan berbagai macam peralatan (Portabilitas)
- Saat Anda ingin aplikasi Anda memiliki tampilan yang sama dengan komponen UI yang lain dari berbagai peralatan
- Saat Anda ingin kode Anda dapat menjadi sesedikit mungkin, ketika sebuah interaksi ditangani oleh API
Kapan menggunakan Low-Level UI
- Saat Anda memerlukan sebuah high-level untuk mengkontrol tampilan dari suatu aplikasi
- Saat aplikasi Anda membutuhkan tempat yang tepat dari elemen-elemen yang ada pada screen
- Saat membuat game secara grafik; meskipun Anda tetap dapat menggunakan highlevel UI pada menu game, hal tersebut lebih disarankan untuk membuat menu UI Anda sendiri untuk menghindari seamless atmosphere bagi para user
- Saat sebuah aplikasi membutuhkan akses ke low-level yang memiliki inputan seperti key presses
-Jika aplikasi Anda akan diimplementasikan pada layar navigasi Anda sendiri
Display
- Satu-satunya object untuk menampilkan sesuatu ke layar pada tiap MIDlet
- MIDlet dapat meminta refrence kepada object Display dengan menggunakan static Display.getDisplay(), untuk memberikan refrence pada instance dari MIDlet
- MIDlet akan memastikan bahwa object Display tidak akan berubah selama object dari MIDlet tersebut tersedia
Displayable
- Hanya satu displayable yang ditampilkan pada satu waktu
- Secara langsung, displayable tidak ditampilkan pada layar
- Sebuah displayable dapat ditampilkan dengan memanggil method setCurrent() dari Display instance
- Method setCurrent() harus dipanggil pada saat memulai aplikasi, dengan kata lain sebuah screen kosong akan ditampilkan atau aplikasi tersebut tidak akan dijalankan
Sebuah displayable dapat memiliki nama (title), beberapa perintah(command), commandListener dan Ticker.
Title
- Posisi dan penampilan dari title tersebut merupakan piranti spesifik yang hanya dapat ditentukan oleh peralatan dari aplikasi yang sedang dijalankan
- Sebuah title ditampilkan pada Displayable dengan memanggil setTitle()
Command
- Untuk menggantikan menu bar, MIDlet memiliki Commands
- Biasanya Command diimplementasikan sebagai soft key atau item dalam sebuah menu
- Object Command hanya berisi informasi tentang action yang harus dikerjakan pada saat Command diaktifkan
CommandListener
- CommandListener merupakan interface dengan single method:
void commandAction(Command command, Displayable displayable)
- Method commandAction() akan dipanggil jika Command dipilih
- CommandAction() harus dikembalikan dengan seketika, jika tidak maka pengeksekusian aplikasi akan diblock
Ticker
- Ticker adalah sebuah baris dari text yang dapat discrolling secara terus-menerus pada display
- Method konstruktor dari ticker menerima text string untuk ditampilkan.
- Hanya memiliki dua method lain, yaitu getter dan setter untuk text ini: String getString() dan void setString(String text)
Screen
Screen merupakan inti abstrak class yang digunakan untuk high-level UI ketika canvas merupakan Displayable abstrak class untuk low-level UI.
Item
Items merupakan komponen yang dapat diletakan kedalam container, seperti Form atau Alert. Sebuah item dapat memiliki property seperti dibawah ini:
Label: Mobile Computing
Subscribe to:
Postingan (Atom)