Membuat High-Level User Interface

Document Sample
Membuat High-Level User Interface Powered By Docstoc
					         Praktikum

                                Membuat High-Level
          3                       User Interface

1.1. Tujuan:
         •   Mahasiswa dapat mendisplay pesan pada MIDlet Screen, Mengimplementasikan
             input user interface, Menangani input user lewat Item state changes, Menguji data
             form menggunakan command object, dan Mengimplementasikan sistem menu


1.2. Latihan:
Mengembangkan          menu     utama     pada   game,   mengembangkan   user     input   screen,
mengimplementasikan ItemStateListener interface, membuat command object dan menempatkan
form userInput pada UserOptions klas, mengimplementasikan menu sistem.
Adapun tujuan-tujuan dari latihan ini adalah :
1. Untuk mulai pengembangan Starshipbattle 2004 game. Menu utama yang dikembangkan
     terdiri dari tiga aneka pilihan yaitu :
     • Start Game
     •   Set Options
     •   End Game
     Pada latihan berikutnya bisa menambahkan fungsi untuk masing-masing pilihan menu. Tiap
     item menu yang ditunjukkan kepada user disimpan dalam String[] array.
2.   Untuk mengembangkan user input screen yang membolehkan para user untuk memasukkan
     nama dan nicknamenya. Aplikasi harus memajang form pada user untuk entri data ketika
     user memilih set options dari layar menu utama. Di latihan berikutnya menambahkan fungsi
     untuk menyimpan dan mendapatkan informasi.
3.   Untuk mengimplementasikan interface ItemStateListener. Interface           ItemStateListener
     berpengaruh pada form UserOptions yang dibuat pada latihan sebelumnya untuk




Riyanto Sigit                                    J2ME - 1
Wiratmoko Yuwono
     memberitahu perubahan-perubahan pada user. Pemberitahuan ini dikenalkan dalam form
     Alert object pada display.
4.   Untuk membuat command object dan menempatkan form UserInput pada klas UserOptions.
     Kita juga dapat mengimplementasikan interface command listener untuk menghubungkan
     kejadian yang disebabkan ketika user invoke command. Dalam latihan ini interface
     ItemStateListener memberitahukan user ketika data berubah pada form userOptions. Dengan
     implmentasi ini user diberitahu perubahan setiap kali key ditekan. Implementasi ini tidak
     praktis dan kemungkinan besar menganggu para user ketika mereka mengubah informasi
     pada form userInput.
5.   Untuk mengimplementasikan fungsi yang dibutuhkan untuk melengkapi menu system game
     StarShipBattle 2004. Kita juga dapat mengubah userOptions klas untuk mengijinkan user
     kembali ke menu utama.


1.3.    Persiapan:
Untuk menyiapkan latihan ini lakukan setting computer pada lokasi direktori: labdir = ________
Langkah 1— Memperlihatkan pesan pada MIDlet Screen
Copy file pada lokasi direktori ..\apps\Lab2_Exercise2\src dan ikuti step ini:
     1. Tetapkan klas baru yang disebut klas MainMenu yang berisi unsure-unsur untuk menu
        layar. Menu utama harus berisi properties dan atribut berikut :
        •   Properties :
            •   String[] menuList – Tunjukkan masing-masing menu item dan menyimpan teks
                string berikut :
                Start Game
                Set Options
                End Game
            •   List Menu – adalah daftar screen object yang ditempatkan pada display untuk
                user.
            •   Display deviceDisplay – adalah display object yang digunakan tempat atribut
                menuList pada display.
            •   Constructor – MainMenu(Display d)




Riyanto Sigit                                  J2ME - 2
Wiratmoko Yuwono
               Ini adalah default constructor yang digunakan untuk inisial properties pada class
               MainMenu. Display object yang dilewati sebagai parameter yang disimpan di
               mainDisplay property ketika kita meList object, set tipe untuk pilihan IMPLICIT.
           •   Method – showMenu()
               Metode ini mengimplementasikan fungsi yang diperlukan untuk tempat atribut
               menuList pada peralatan display.
   2. Untuk mengubah StarShipBattle class, ikuti langkah-langkah berikut :
       a. Import paket javax.microedition.lcdui
       b. Panggil showMenu() method dari dalam startApp() untuk instantiate dan display
           MainMenu object


Langkah 2— Mengimplementasikan user input interface
Untuk menyiapkan latihan ini lakukan setting computer pada lokasi direktori: labdir = ________
Copy file pada lokasi direktori ..\apps\Lab3_Exercise1\src dan ikuti step ini:
   1. Tetapkan klas UserOptions demean mengikuti properties, constructor dan method :
           •   Properties :
               •   Form inputForm – mengatur input component
               •   TextField name – mengijinkan user untuk memasukkan nama lengkap mereka
                   menggunakan berbagai karakter.
               •   TextField alias – mengijinkan user untuk memasukkan nama alias
                   menggunakan berbagai karakter.
               •   Diplay deviceDisplay – memelihara referensi untuk mendisplay peralatan
                   untuk mendukung kemampuan untuk display object inputForm user.
           •   Constructor – UserOptions(Display d)
               Inisial contructor dan membuat object inputForm. Display object yang dilewati
               untuk contructor disimpan dalam deviceDisplay property.
           •   Method – showUserOpt()
               Method di set pada object inputForm sebagai display object sekarang.




   2. Membuat perubahan pada StarShipBattle class berikut :


Riyanto Sigit                                  J2ME - 3
Wiratmoko Yuwono
       a. Berikan komentar kode dalam method startApp()yang diinisialisasi dan displays
           MainMenu
       b. Deklarasikan dan inisialisasi object UserOptions.
       c. Panggil method showUserOpt().


Langkah 3— Memasukkan user input melalui user item
Untuk menyiapkan latihan ini lakukan setting computer pada lokasi direktori: labdir = ________
Mengimplementasikan interface ItemStateListener
Copy file pada lokasi direktori ..\apps\Lab3_Exercise2\src dan modifikasi UserOptions klas
untuk implementasi interface ItemStateListener dengan mengikuti step ini:
   1. Definisikan dengan mengikuti empat properties baru dalam klas UserOptions :
           •   String nameAlertText – string dari text yang dipertunjukkan pada user ketika
               nilai nama object TextField berubah
           •   String aliasAlertText – string dari text yang diperkenalkan pada user ketika nilai
               alias object TextFiled berubah.
           •   Image okImage – Image object yang diperkenalkan pada user di object Alert.
           •   Alert updateAlert – Alert object yang ditunjukkan ketika informasi di inputForm
               berubah.
   2. Ubah UserOptions(Diplay d) constructor sebagai berikut :
       a. Tambahkan fungsi untuk menjalankan file okImage. Image disimpan di file
           labdir\res\dukeok8.png
       b. Tambahkan fungsi untuk membuat instance updateAlert yang mempunyai properties :
           •   Title : Data Changed
           •   AlertText : null
           •   Image : okImage
           •   Alert Type : AlertType.CONFIRMATION
           •   Set updateAlert timeout menjadi Alert.FOREVER
           •   Register inputForms ItemStateListener untuk the UserOptions class
   3. Definisikan dengan mengikuti empat properties baru dalam klas UserOptions :
       •   String nameAlertText – string dari text yang dipertunjukkan pada user ketika nilai
           nama object TextField berubah

Riyanto Sigit                                    J2ME - 4
Wiratmoko Yuwono
       •        String aliasAlertText – string dari text yang diperkenalkan pada user ketika nilai alias
                object TextFiled berubah.
       •        Image okImage – Image object yang diperkenalkan pada user di object Alert.
       •        Alert updateAlert – Alert object yang ditunjukkan ketika informasi di inputForm
                berubah.


Langkah 4— Menguji data form menggunakan command object
Untuk menyiapkan latihan ini lakukan setting computer pada lokasi direktori: labdir = ________
Memodifikasi UserOptions Class.
Copy file pada lokasi direktori ..\apps\Lab3_Exercise3\src. Ubah implementasi interface untuk
interface CommandListener dan ikuti step ini:
 1. Tambahkan properties berikut :
      a. Tambahkan perintah saveData property.
           Propertis ini menghadirkan perintah memilih user ketika mengisikan data lengkap pada
           form.
      b. Tambahkan String saveAlertText propery dan set nilai string menjadi “Data Save”.
 2.   Di UserOptions(Display d) contructor, In the UserOptions(Display d) contructor,
      laksanakan step ini :
      a. instantiate adalah hal dari perintah saveData menggunakan properties berikut :
           •     Label: Save
           •     Command Type : Command OK
           •     Priority : 1
      b. Tambahkan perintah objek saveDataAdd untuk objek inputForm.
      c. Daftarkan UserOptions class sebagai perintah listener untuk objek inputForm.
      d. Berikan komentar untuk program yang memanggil setItemStateLsitener() method.
 3. Tambahkan method commandAction(Command c, Displayable d) pada UserOptions class,
      dan ikuti langkah berikut :
      a. Uji perintah yang dilewati dan jika sama dengan perintah saveData lalu set teks
               updateAlert menjadi saveAlertText.
      b. Panggil method showAlertUpdate()pada display alert.
 4.   Berikan komentar pada method itemStateChanged(Item i)


Riyanto Sigit                                       J2ME - 5
Wiratmoko Yuwono
Langkah 5— Mengimplementasikan system menu
Untuk menyiapkan latihan ini lakukan setting computer pada lokasi direktori: labdir = ________
Pada latihan ini, lengkapi tugas berikut :
   •      Implementasikan menu system menggunakan List screen dan Command objek.
   •      Implementasikan menu system menggerakkan antar screen.
Untuk melengkapi latihan ini ubah klas mainMenu untuk :
   •      Display objek Alert ketika user memilih menu Start pada game.
   •      Display UserInput screen ketika user memilih menu Set option.
   •      Exit aplikasi ketika user memilih menu Exit pada game
Tugas 1 – Mengimplementasikan sistem menu menggunakan List Screen dan Command
object.
Copy file pada lokasi direktori ..\apps\Lab3_Exercise4\src dan ikuti step ini:
 1. Ubahlah klas MainMenu untuk mengimplementasikan CommandListener interface
 2. Hilangkan menuList[] array property
 3. Tambahkan properties berikut :
           •     Command startGame
           •     Command setOptions
           •     Command exitGame
           •     Alert loadingGameAlert
           •     Gauge loadingGameGauge
           •     UserOptions optionForm
           •     StarShipBattle ssb
 4. Di MainMenu contructor, laksanakan perintah berikut :
       a. Hilangkan menuList array
       b. Mengubah menuList instantiation hanya lewat Title dan Type
       c. Instantiate pada tiga Command properties dengan menyediakan Titles, Command
               types and Priorities
       d. Tambahkan Command properties untuk menu property
       e. Instantiate loadingGameGauge property demean mengikuti parameter berikut :
           •      Title : null

Riyanto Sigit                                  J2ME - 6
Wiratmoko Yuwono
         •    Interactive : false
         •    Max Value: Gauge.INDEFINITE
         •    Initial Value: Gauge.CONITONOUS_RUNNING
     f. set preferred size dari loadingGameGuage property to -1,-1
     g. Instantiate loadingAlert dengan mengikuti parameter berikut :
             • Title : Loading Game
             • Alert Text : Loading StarShipBattle 2004, Please Standby….
     h. Set menu command listener untuk MainMenu object
     i. Beri tanda StarShipBattle parameter yang dilewati variable ssb
     j. Instantiate objek UserOptions.
 5. Tambahkan actionCommand(Command c, Displayable d). Metode ini seharusnya menguji
    command object antara masing-masing menu dan mengambil jalan yang tepat dari action
    sebagai berikut :
     •       Start Game – Generate alert dan beritahukan user bahwa game sedang loading.
     •       LoadingGameGauge object ditunjukkan sebagai bagian dari alert.
     •       Set Options – Triggers mengubah untuk display UserOptions screen
     •       Exit Game – Mintakan matikan game yang baik dengan memanggil shutdown()
             method pada StarShipBattle object.
 6. Buat perubahan sebagai berikut untuk starApp() method pada StarShipBattle class:
     a. Memperoleh referensi untuk device display
     b. Instantiate MainMenu object
     c. Panggil showMenu() method pada MainMenu object.
 7. Tambahkan shutdown() method
    Mengimplementasikan metode ini sebaiknya matikan aplikasi dengan permintaan.




Riyanto Sigit                                 J2ME - 7
Wiratmoko Yuwono
Tugas 2 – Mengimplementasikan sistem menu untuk menggerakkan antara screen.
Ubahlah UserOptions class untuk mengijinkan user kembali ke menu utama. Klas ini di
implementasikan begitu setelah Alert Object memberitahukan perubahan pada user, maka
aplikasi kembali pada menu utama. Untuk melengkapi fungsi ini, UserOptions class harus
mempunyai referensi untuk MainMenu class. Buat perubahan UserOption class sebagai berikut :
   1. Tambahkan property sebagai berikut :
       Displayable mainMenu
   2. Tambahkan metode sebagai berikut :
       Public void registerMenu(Displayable mm)
       Implementasi pada metode ini seharusnya mengambil parameter MainMenu dan
       memberikannya untuk mainMenu property dinyatakan pada Step 1.
   3. Di showUpdateAlert() method, ubah parameter ke dua menjadi setCurrent() method
       untuk mainMenu property
   4. Pada MainMenu class contructor, setelah kita membuat userOptions object, panggillah
       registerMenu() method menggunakan ini sebagai parameter.




Riyanto Sigit                                J2ME - 8
Wiratmoko Yuwono
1.4.   Penyelesaian Latihan
Gunakan penyelesaian untuk mengecek jawaban anda pada latihan dalam lab.
Bandingkan jawaban anda dengan contoh program.
Langkah 1— Memperlihatkan pesan pada MIDlet Screen
Program 3-1 adalah contoh file MainMenu.java

import javax.microedition.lcdui.*;

public class MainMenu{

       private String[] menuList = { "Start Game",
                                                       "Set Options",
                                                       "End Game" };

       private List menu;
       private Display deviceDisplay;

       public MainMenu(Display d){
              deviceDisplay = d;

              menu = new List("Game Menu", Choice.IMPLICIT, menuList, null);
       }

       public void showMenu(){

              deviceDisplay.setCurrent(menu);
       }

}




Riyanto Sigit                               J2ME - 9
Wiratmoko Yuwono
Program 3-2 adalah contoh file StarShipBattle.java.

 import javax.microedition.midlet.*;

 public class StarShipBattle extends MIDlet{

        private final String profileVersion = "MIDP-2.0";
        private final String configVersion = "CLDC-1.0";

        public StarShipBattle(){
               String pv = getAppProperty("MicroEdition-Profile");
               String cv = getAppProperty("MicroEdition-Configuration");

                if((pv.equals(profileVersion)) && (cv.equals(configVersion))){
                        System.out.println("Versions ok, proceed as needed");
                        System.out.println("Loading the application...");
                }else{
                        System.out.println("Versions incorrect...unable to proceed");
                        System.out.println("Unloading the application...");
                        destroyApp(true);
                        notifyDestroyed();
                }
        }

        public void startApp(){
               System.out.println("in the startApp()");

                Display d = Display.getDisplay(this);
                MainMenu mm = new MainMenu(d);
                mm.showMenu();
        }

        public void pauseApp(){
                System.out.println("in the pauseApp()...");
        }

        public void destroyApp(boolean unc){
                System.out.println("in the destroyApp()... ");
        }
 }




Riyanto Sigit                                  J2ME - 10
Wiratmoko Yuwono
Langkah 2— Mengimplementasikan user input interface
Program 3-3 adalah contoh file UserOptions.java

 import javax.microedition.lcdui.*;

 public class UserOptions{

        private Form inputForm;

        private TextField name;
        private TextField nickname;

        private Display deviceDisplay;

        public UserOptions(Display d){

               name = new TextField("UserName", null, 25, TextField.ANY);
               nickname = new TextField("Nickname", null, 25, TextField.ANY);

               inputForm = new Form("User Information");
               inputForm.append(name);
               inputForm.append(nickname);

               deviceDisplay = d;
        }

        public void showUserOpt(){
               deviceDisplay.setCurrent(inputForm);
        }
 }




Riyanto Sigit                               J2ME - 11
Wiratmoko Yuwono
Program 3-4 adalah contoh file StarShipBattle.java

 import javax.microedition.midlet.*;
 import javax.microedition.lcdui.*;


 public class StarShipBattle extends MIDlet{

        private final String profileVersion = "MIDP-2.0";
        private final String configVersion = "CLDC-1.0";

        public StarShipBattle(){
               String pv = getAppProperty("MicroEdition-Profile");
               String cv = getAppProperty("MicroEdition-Configuration");

                if((pv.equals(profileVersion)) && (cv.equals(configVersion))){
                        System.out.println("Versions ok, proceed as needed");
                        System.out.println("Loading the application...");
                }else{
                        System.out.println("Versions incorrect...unable to proceed");
                        System.out.println("Unloading the application...");
                        destroyApp(true);
                        notifyDestroyed();
                }
        }

        public void startApp(){
               System.out.println("in the startApp()");

                Display d = Display.getDisplay(this);
                //MainMenu mm = new MainMenu(d);
                //mm.showMenu();
                UserOptions uo = new UserOptions(d);
                uo.showUserOpt();
        }

        public void pauseApp(){
                System.out.println("in the pauseApp()...");
        }

        public void destroyApp(boolean unc){
                System.out.println("in the destroyApp()... ");
        }
 }




Riyanto Sigit                                  J2ME - 12
Wiratmoko Yuwono
Langkah 3— Memasukkan user input melalui user item
Program 3-5 adalah contoh file UserOption.java

 import javax.microedition.lcdui.*;
 import java.io.IOException;

 public class UserOptions implements ItemStateListener{

        private Form inputForm;
        private TextField name;
        private TextField alias;
        private Display deviceDisplay;

        private String nameAlertText = "Your name has changed.";
        private String aliasAlertText = "Your alias has changed.";

        private Image okImage;
        private Alert updateAlert;

        public UserOptions(Display d){

               name = new TextField("UserName", null, 25, TextField.ANY);
               alias = new TextField("alias", null, 25, TextField.ANY);

               inputForm = new Form("User Information");
               inputForm.append(name);
               inputForm.append(alias);

               deviceDisplay = d;

               try{
                      okImage = Image.createImage("/dukeok8.png");
               }catch(IOException io){
                      System.out.println("ERR:UserOptions:Unable to load image");
               }

        updateAlert = new Alert("Data Changed", null, okImage,AlertType.CONFIRMATION);
        updateAlert.setTimeout(Alert.FOREVER);
        inputForm.setItemStateListener(this);
        }




Riyanto Sigit                               J2ME - 13
Wiratmoko Yuwono
 public void itemStateChanged(Item i){
                if( i == name){
                         updateAlert.setString(nameAlertText);
                }else{
                         updateAlert.setString(aliasAlertText);
                }
                showAlertUpdate();

        }

        private void showAlertUpdate(){
                deviceDisplay.setCurrent(updateAlert, inputForm);
        }

        public void showUserOpt(){
               deviceDisplay.setCurrent(inputForm);
        }

 }




Riyanto Sigit                                 J2ME - 14
Wiratmoko Yuwono
Langkah 4— Menguji data form menggunakan command object
Program 3-6 adalah contoh file UserOption.java

 import javax.microedition.lcdui.*;
 import java.io.IOException;

 public class UserOptions implements CommandListener{

        private Form inputForm;

        private TextField name;
        private TextField alias;

        private Display deviceDisplay;

        private String nameAlertText = "Your name has changed.";
        private String aliasAlertText = "Your alias has changed.";
        private String saveAlertText = "Data Saved!";

        private Image okImage;
        private Alert updateAlert;

        private Command saveData;
        public UserOptions(Display d){

               name = new TextField("UserName", null, 25, TextField.ANY);
               alias = new TextField("alias", null, 25, TextField.ANY);

               inputForm = new Form("User Information");
               inputForm.append(name);
               inputForm.append(alias);

               deviceDisplay = d;

               try{
                      okImage = Image.createImage("/dukeok8.png");
               }catch(IOException io){
                      System.out.println("ERR:UserOptions:Unable to load image");
               }




Riyanto Sigit                               J2ME - 15
Wiratmoko Yuwono
 updateAlert = new Alert("Data Changed", null, okImage,AlertType.CONFIRMATION);
               updateAlert.setTimeout(Alert.FOREVER);
               //inputForm.setItemStateListener(this);

              saveData = new Command("Save", Command.OK, 1);
              inputForm.addCommand(saveData);
              inputForm.setCommandListener(this);

         }
 public void commandAction(Command c, Displayable d){

              if (c == saveData){
                      updateAlert.setString(saveAlertText);
                      showAlertUpdate();
              }
       }

 /*
       public void itemStateChanged(Item i){
              if( i == name){
                       updateAlert.setString(nameAlertText);
              }else{
                       updateAlert.setString(aliasAlertText);
              }
              showAlertUpdate();

       }
 */
       private void showAlertUpdate(){
               deviceDisplay.setCurrent(updateAlert, inputForm);
       }

       public void showUserOpt(){
              deviceDisplay.setCurrent(inputForm);
       }

 }




Riyanto Sigit                               J2ME - 16
Wiratmoko Yuwono
Langkah 5— Mengimplementasikan sistem menu
Program 3-7 adalah contoh file MainMenu.java.

 import javax.microedition.lcdui.*;
 import java.io.IOException;

 public class MainMenu implements CommandListener{
         private List menu;
         private Display deviceDisplay;

        private Command startGame;
        private Command setOptions;
        private Command exitGame;

        private Gauge loadingGameGauge;
        private Alert loadingAlert;

        private StarShipBattle ssb;
        private UserOptions userOptions;
        public MainMenu(StarShipBattle mid, Display d){
                deviceDisplay = d;

               menu = new List("Game Menu", Choice.IMPLICIT);
               startGame = new Command("Start Game", Command.OK, 1);
               setOptions = new Command("Set Options", Command.OK, 1);
               exitGame = new Command("Exit Application", Command.EXIT, 1);

               menu.addCommand(startGame);
               menu.addCommand(setOptions);
               menu.addCommand(exitGame);

               loadingGameGauge = new Gauge(null,
               false,Gauge.INDEFINITE,Gauge.CONTINUOUS_RUNNING);
               loadingGameGauge.setPreferredSize(-1,-1);


               loadingAlert = new Alert("Loading Game", "Loading StarShip Battle 2004,
               Please standby...", null, AlertType.INFO);

               menu.setCommandListener(this);

               ssb = mid;
               userOptions = new UserOptions(d);
               userOptions.registerMenu(menu);

        }

Riyanto Sigit                              J2ME - 17
Wiratmoko Yuwono
  public void commandAction(Command c, Displayable d){

               if(c == startGame){

                      startGame();


               }else if(c == setOptions){

                      setOptions();

               }else if(c == exitGame){

                      exitGame();

               }
        }

        public void startGame(){
               loadingAlert.setImage(null);
               loadingAlert.setIndicator(loadingGameGauge);
               deviceDisplay.setCurrent(loadingAlert, menu);
        }

        public void setOptions(){
                userOptions.showUserOpt();
        }

        public void exitGame(){
               ssb.shutDown();
        }


        public void showMenu(){

               deviceDisplay.setCurrent(menu);
        }

  }




Riyanto Sigit                               J2ME - 18
Wiratmoko Yuwono
Program 3-8 adalah contoh file UserOptions.java.

 import javax.microedition.lcdui.*;
 import java.io.IOException;

 public class UserOptions implements CommandListener{

        private Form inputForm;

        private TextField name;
        private TextField alias;

        private Display deviceDisplay;

        private String nameAlertText = "Your name has changed.";
        private String aliasAlertText = "Your alias has changed.";
        private String saveAlertText = "Data Saved!";

        private Image okImage;
        private Alert updateAlert;
        private Displayable mainMenu;

        private Command saveData;
        public UserOptions(Display d){

               name = new TextField("UserName", null, 25, TextField.ANY);
               alias = new TextField("alias", null, 25, TextField.ANY);

               inputForm = new Form("User Information");
               inputForm.append(name);
               inputForm.append(alias);

               deviceDisplay = d;

               try{
                      okImage = Image.createImage("/dukeok8.png");
               }catch(IOException io){
                      System.out.println("ERR:UserOptions:Unable to load image");
               }

               updateAlert = new Alert("Data Changed", null,
               okImage,AlertType.CONFIRMATION);
               updateAlert.setTimeout(Alert.FOREVER);
               //inputForm.setItemStateListener(this);




Riyanto Sigit                               J2ME - 19
Wiratmoko Yuwono
  saveData = new Command("Save", Command.OK, 1);
               inputForm.addCommand(saveData);
               inputForm.setCommandListener(this);

         }
  public void registerMenu(Displayable mm){
                 mainMenu = mm;
         }

        public void commandAction(Command c, Displayable d){

               if (c == saveData){
                       updateAlert.setString(saveAlertText);
                       showAlertUpdate();
               }
        }

  /*
        public void itemStateChanged(Item i){
               if( i == name){
                        updateAlert.setString(nameAlertText);
               }else{
                        updateAlert.setString(aliasAlertText);
               }
               showAlertUpdate();

        }
  */
        private void showAlertUpdate(){
                deviceDisplay.setCurrent(updateAlert, mainMenu);
        }

        public void showUserOpt(){
               deviceDisplay.setCurrent(inputForm);
        }

  }




Riyanto Sigit                               J2ME - 20
Wiratmoko Yuwono
Program 3-9 adalah contoh file StarShipBattle.java.

 import javax.microedition.midlet.*;
 import javax.microedition.lcdui.*;


 public class StarShipBattle extends MIDlet{

        private final String profileVersion = "MIDP-2.0";
        private final String configVersion = "CLDC-1.0";

        public StarShipBattle(){
               String pv = getAppProperty("MicroEdition-Profile");
               String cv = getAppProperty("MicroEdition-Configuration");

                if((pv.equals(profileVersion)) && (cv.equals(configVersion))){
                        System.out.println("Versions ok, proceed as needed");
                        System.out.println("Loading the application...");
                }else{
                        System.out.println("Versions incorrect...unable to proceed");
                        System.out.println("Unloading the application...");
                        shutDown();
                }
        }

        public void startApp(){
               System.out.println("in the startApp()");

                Display d = Display.getDisplay(this);
                MainMenu mm = new MainMenu(this, d);
                mm.showMenu();
        }

        public void pauseApp(){
                System.out.println("in the pauseApp()...");
        }
        public void destroyApp(boolean unc){
                System.out.println("in the destroyApp()... ");
        }

        public void shutDown(){
                destroyApp(false);
                notifyDestroyed();
        }
 }



Riyanto Sigit                                  J2ME - 21
Wiratmoko Yuwono