Selasa, 12 Juni 2012

UNIT II - Bab 3 - Bagaimana membangun User Interface?


UNIT II - Bab 3 - Bagaimana membangun User Interface?

User interface   suatu aplikasi yang salah satu elemen paling penting dalam pemrograman aplikasi. Antarmuka pengguna harus dirancang dengan mengingat kemudahan penggunaan dan kejernihan tampilan kepada pengguna. Device Profile Mobile Information (MIDP) menyediakan paket javax.microedition.lcdui yang berisi dua jenis elemen antarmuka pengguna, yaitu:
§   High Level User Interface
Antarmuka pengguna berisi tingkat tinggi layar seperti Formulir, Daftar Alert, dan TextBox. Hal ini juga berisi Produk yang dapat ditambahkan ke form. Keuntungan dengan antarmuka tingkat tinggi adalah bahwa lebih mudah untuk program dan tampilan dan nuansa dari antarmuka pengguna aplikasi tetap sama seperti yang dari aplikasi kode asli jika mereka menggunakan antarmuka pengguna tingkat tinggi. Dengan demikian pengguna akan merasa lebih mudah untuk mengoperasikan aplikasi yang menggunakan antarmuka tingkat tinggi sebagai elemen dari antarmuka tingkat tinggi akan berperilaku dalam cara seorang pengguna terbiasa menggunakan aplikasi lain seperti buku telepon, dll scheduler
PRAKTEK TERBAIK
Seperti tampilan dan nuansa perubahan antarmuka tingkat tinggi dari perangkat ke perangkat pernah mengandalkan antarmuka tingkat tinggi untuk berperilaku sama pada semua perangkat. Misalnya Ticker umumnya akan bergerak dari kanan ke kiri di sebagian besar perangkat tetapi dalam SonyEricsson T610 bergerak secara vertikal tidak horizontal, perbedaan yang sangat besar!

Jadi selalu menggunakan antarmuka tingkat rendah dengan 'Teknik Portabilitas UI SKJ' (Dijelaskan dalam 'Pemrograman Ponsel' buku saya sebelumnya) ketika Anda ingin menjadi persen persen yakin tentang perilaku aplikasi Anda.
§   Low Level User Interface
Tingkat rendah antarmuka pengguna terdiri dari kanvas, Grafis dan kelas Font. Melalui penggunaan kelas-kelas ini kita dapat mengontrol tampilan pengguna yang sangat halus. Kita dapat menarik elemen yang berbeda seperti garis, persegi panjang busur, dan teks. Kita akan membahas lebih lanjut tentang antarmuka pengguna tingkat rendah dalam bab berikutnya berjudul 'Bagaimana bekerja dengan Grafik Rendah'.
  1. Para Layar
Semua layar seperti Formulir, Daftar Alert, dan TextBox memiliki Layar kelas umum Super bernama. Pemrogram dapat menggunakan layar yang berbeda untuk menampilkan data dan mendapatkan input pengguna dengan cara yang portabel. Kelas Layar juga memberikan dukungan untuk menetapkan Ticker, yang dapat digunakan untuk berbagai keperluan. Sekarang kita akan membahas semua 4 jenis layar secara rinci.
    1. Bentuk
Formulir adalah antarmuka pengguna layar yang telah dibangun terutama untuk mengedit dan menampilkan beberapa jenis dan bentuk data. Formulir adalah kelas sub layar yang dapat berisi jenis berikut Produk:
·          Mengukur
·          StringItem
·          ImageItem
·          TextField
·          ChoiceGroup
·          DateField
Oleh karena itu setiap sub-class dari kelas Barang dapat terkandung dalam formulir. Dengan demikian formulir dapat bertindak sebagai wadah alat ukur, gambar, teks, daftar dan tanggal. Juga menjadi subclass dari Screen, Ticker juga bisa diatur untuk Formulir. Semua item yang terkandung dalam formulir juga bisa disebut dengan indeks mereka. Indeks dari item pertama adalah 0 dan indeks terakhir adalah jumlah item dalam bentuk dikurangi dengan satu.
Kode contoh untuk menggunakan formulir belum diberikan secara terpisah sebagai konstruksi bentuk dan menambahkan mereka dengan item yang ada pada contoh kode untuk setiap jenis Item.
    1. Waspada
Pemberitahuan itu membantu dalam tampilan data penting kepada pengguna aplikasi. Programmer juga dapat mengatur waktu yang Pemberitahuan harus menunggu sebelum pindah ke layar berikutnya dapat ditampilkan. The 5 jenis Pemberitahuan yang ada didefinisikan dalam 'AlertType' kelas. Alarm sangat baik dalam memberikan informasi tentang kesalahan dan pengecualian lain kepada pengguna. Bahkan Anda bisa mengatakan bahwa mereka adalah kotak dialog untuk ponsel. Untuk membuat modal waspada, menggunakan pernyataan berikut:
·          setTimeout (Alert.FOREVER)
Ada lima jenis Alarm:
·          Alarm
·          Penyesuaian
·          Kesalahan
·          Info
·          Peringatan            
      

Selain mendefinisikan berbagai jenis Alarm untuk situasi yang berbeda MIDP juga diberi pilihan untuk menampilkan setiap gambar di dalam Alert. Gambar ini harus disediakan oleh pengembang. Anda dapat menggunakan gambar dalam semua jenis Alarm. Sekarang kita akan melihat kode praktis untuk pembangunan semua jenis Alarm.
Contoh Alert (Alarm)
  / * 
  * AlertMIDlet.java 
    * / 
  mengimpor javax.microedition.midlet *;. 
  mengimpor javax.microedition.lcdui *;. 
  / ** 
  ** @ Author SKJ
    *        @ Version 1.0.0 
  * / 
  AlertAlarmMIDlet kelas publik meluas javax.microedition.midlet.MIDlet 
  { 
       swasta Tampilan layar; 
       waspada Pemberitahuan swasta; 
       swasta Formulir bentuk; 
       publik AlertAlarmMIDlet () 
       { 
           this.form Formulir = baru ("NextFormDisplay"); 
       } 
       public void startApp () 
       { 
           this.display = Display.getDisplay (ini); 
           this.alert = new Alert ("AlertTitle", "AlertAlarmDemo", null, AlertType.ALARM); 
           this.display.setCurrent (this.alert, this.form); 
       } 
       public void pauseApp () 
       { 
          
       } 
      
       public void destroyApp (boolean unconditional) 
       { 
          
       } 
  } 

Emulator yang digunakan untuk mengambil screen shot      :            Nokia 6650

Contoh Pemberitahuan (Konfirmasi)
  / * 
  * AlertConfirmationMIDlet.java 
  * / 
  mengimpor javax.microedition.midlet *;. 
  mengimpor javax.microedition.lcdui *;. 
  impor java.io.IOException; 
  / ** 
  * @ Author SKJ
    * @ Version 1.0.0 
  * / 
  AlertConfirmationMIDlet kelas publik meluas javax.microedition.midlet.MIDlet 
  { 
       swasta Tampilan layar; 
       waspada Pemberitahuan swasta; 
       swasta Formulir bentuk; 
       swasta Gambar gambar; 
       publik AlertConfirmationMIDlet () 
       { 
           this.form Formulir = baru ("NextFormDisplay"); 
       } 
       public void startApp () 
       { 
           this.display = Display.getDisplay (ini); 
          mencoba 
           { 
               this.image = Image.createImage ("/ res / Ball.png"); 
           } 
           catch (IOException e) 
          { 
               this.display.setCurrent (Alert baru ("Konstruktor di")); 
           } 
           this.alert = new Alert ("AlertConfirmation", "Setelah 5 detik. Anda 
           akan pindah ke bentuk berikutnya ", this.image, AlertType.CONFIRMATION; 
           this.alert.setTimeout (5000); 
          
           this.display.setCurrent (this.alert, this.form); 
       } 
      
       public void pauseApp () 
       { 
       } 
      
       public void destroyApp (boolean unconditional) 
       {     
       } 
  } 
Emulator yang digunakan untuk mengambil screen shot      :            Nokia 6650

Contoh Pemberitahuan (Error)
 
  / * 
  * AlertErrorMIDlet.java 
  * / 
  mengimpor javax.microedition.midlet *;. 
  mengimpor javax.microedition.lcdui *;. 
  impor java.io.IOException; 
  / ** 
  * @ Author SKJ 
  * @ Version 1.0.0 
  * / 
  AlertErrorMIDlet kelas publik meluas javax.microedition.midlet.MIDlet 
  { 
       swasta Tampilan layar; 
       waspada Pemberitahuan swasta; 
       swasta Formulir bentuk; 
       swasta Gambar gambar; 
       publik AlertErrorMIDlet () 
       { 
           this.form Formulir = baru ("NextFormDisplay"); 
       } 
       public void startApp () 
       { 
           this.display = Display.getDisplay (ini); 
           mencoba 
           { 
               this.image = Image.createImage ("/ res / Ball.png"); 
           } 
           catch (IOException e) 
           { 
               this.display.setCurrent (Alert baru ("Konstruktor di")); 
           } 
           this.alert = new Alert ("AlertError", "Setelah 3 detik. Anda akan                                                                                            
           pindah ke bentuk berikutnya ", this.image, AlertType.ERROR); 
           this.alert.setTimeout (3000); 
           this.display.setCurrent (this.alert, this.form); 
       } 
       public void pauseApp () 
       { 
       } 
       public void destroyApp (boolean unconditional) 
       { 
          
       } 
  } 
Emulator yang digunakan untuk mengambil screen shot      :            Nokia 6650


Contoh Pemberitahuan (Info)
  / * 
  * AlertInfoMIDlet.java 
  * / 
  mengimpor javax.microedition.midlet *;. 
  mengimpor javax.microedition.lcdui *;. 
  impor java.io.IOException; 
  / ** 
  * @ Author SKJ
    * @ Version 1.0.0 
  * / 
  AlertInfoMIDlet kelas publik meluas javax.microedition.midlet.MIDlet 
  { 
       swasta Tampilan layar; 
       waspada Pemberitahuan swasta; 
       swasta Formulir bentuk; 
       swasta Gambar gambar; 
       publik AlertInfoMIDlet () 
       { 
           this.form Formulir = baru ("NextFormDisplay"); 
       } 
       public void startApp () 
       { 
           this.display = Display.getDisplay (ini); 
           mencoba 
           { 
               this.image = Image.createImage ("/ res / Ball.png"); 
           } 
           catch (IOException e) 
           { 
               this.display.setCurrent (Alert baru ("Konstruktor di")); 
           } 
           this.alert = new Alert ("AlertInfo", "Setelah 3 detik Anda akan. bergerak 
           ke bentuk berikutnya ", this.image, AlertType.INFO); 
           this.alert.setTimeout (3000); 
           this.display.setCurrent (this.alert, this.form); 
       } 
       public void pauseApp () 
       { 
       } 
       public void destroyApp (boolean unconditional) 
       { 
          
       } 
  } 
Emulator yang digunakan untuk mengambil screen shot      :            Nokia 6650


Contoh Pemberitahuan (Peringatan)
  / * 
  * AlertWarningMIDletSuite.java 
  * / 
  mengimpor javax.microedition.midlet *;. 
  mengimpor javax.microedition.lcdui *;. 
  impor java.io.IOException; 
  / ** 
  * @ Author SKJ
    * @ Version 1.0.0 
  * / 
  AlertWarningMIDlet kelas publik meluas javax.microedition.midlet.MIDlet    
  { 
       swasta Tampilan layar; 
       waspada Pemberitahuan swasta; 
       swasta Formulir bentuk; 
       swasta Gambar gambar; 
       publik AlertWarningMIDlet () 
       { 
           this.form Formulir = baru ("NextFormDisplay"); 
       } 
       public void startApp () 
       { 
           this.display = Display.getDisplay (ini); 
           mencoba 
           { 
               this.image = Image.createImage ("/ res / Ball.png"); 
           } 
           catch (IOException e) 
           { 
               this.display.setCurrent (Alert baru ("Konstruktor di")); 
           } 
           this.alert = new Alert ("AlertWarning", "Klik OK untuk pindah ke 
           berikutnya bentuk.  Modal Alert ", this.image, AlertType.WARNING); 
           this.alert.setTimeout (Alert.FOREVER); 
           this.display.setCurrent (this.alert, this.form); 
       } 
       public void pauseApp () 
       { 
       } 
       public void destroyApp (boolean unconditional) 
       { 
       } 
  } 
Emulator yang digunakan untuk mengambil screen shot      :            Nokia 6650

    1. Daftar
Daftar A adalah elemen antarmuka pengguna yang digunakan untuk menampilkan pilihan di telepon ponsel. Daftar adalah setara ponsel dari ListBox dan ComboBox desktop. Daftar dapat digunakan untuk menampilkan pilihan menu.
Daftar adalah dari 3 jenis berikut:
·          IMPLISIT
Daftar IMPLISIT menawarkan cara yang sangat nyaman untuk pembangunan menu dan daftar sederhana. Hal ini juga memberi programmer 'Command publik akhir statis SELECT_COMMAND' an yaitu perintah otomatis. Perintah ini memungkinkan programmer untuk mengetahui apakah pengguna telah memilih elemen Daftar. Peristiwa yang dihasilkan oleh Komando ini dapat digunakan dari seperti itu dari perintah normal lainnya.
Untuk mengetahui pilihan mana yang tertentu telah dipilih dalam 'getSelectedIndex public int ()' penggunaan Daftar IMPLISIT metode.
·          EKSKLUSIF
Dalam Daftar EKSKLUSIF pengguna memiliki pilihan untuk memilih satu dari banyak unsur. Untuk mengetahui pilihan mana yang tertentu telah dipilih dalam 'getSelectedIndex public int ()' penggunaan Daftar EKSKLUSIF metode.
·          GANDA
Dalam Daftar GANDA pengguna dapat memilih banyak pilihan pada saat yang sama dari Daftar. Untuk mengetahui status seleksi pilihan yang berbeda dalam 'getSelectedFlags public int (boolean [] selectedArray_return)' penggunaan Daftar GANDA metode. Metode ini mengembalikan array boolean berisi status dari setiap elemen dari Daftar 'beberapa'. Jika unsur ini di negara yang dipilih maka variabel yang sesuai pada array boolean yang dikembalikan oleh metode ini adalah dalam keadaan 'benar' jika tidak dalam keadaan palsu.

EKSKLUSIF DAFTAR

BEBERAPA DAFTAR
Contoh Daftar (IMPLISIT)
  / * 
  * ListDemoMIDlet.java 
  * / 
  mengimpor javax.microedition.midlet *;. 
  mengimpor javax.microedition.lcdui *;. 
  / * 
  * @ Author SKJ 
  * @ Version 1.0.0 
  * / 
  ListDemoMIDlet kelas publik meluas javax.microedition.midlet.MIDlet CommandListener alat 
  { 
       swasta Tampilan layar; 
       swasta Daftar daftar; 
       publik ListDemoMIDlet () 
       { 
           Daftar this.list = baru ("Screen Judul", List.IMPLICIT); 
           this.list.append ("List1", null); 
           this.list.append ("List2", null); 
           this.list.append ("List3", null); 
           this.list.append ("List4", null); 
           this.list.append ("List5", null); 
           this.list.setCommandListener (ini); 
  } 
       public void startApp () 
       { 
           this.display = Display.getDisplay (ini); 
           this.display.setCurrent (this.list); 
       } 
       public void pauseApp () { 
       } 
       public void destroyApp (boolean unconditional) 
       { 
       } 
       public void commandAction (Command comm, dapat ditampilkan Disp) 
       { 
           if (== Disp this.list) 
           { 
               if (comm == List.SELECT_COMMAND) 
               { 
                   if (this.list.getSelectedIndex () == 0) 
                   { 
                       this.list.setTitle ("List1 diklik"); 
                   } 
                   else if (this.list.getSelectedIndex () == 1) 
                   { 
                       this.list.setTitle ("List2 diklik"); 
                   } 
                   else if (this.list.getSelectedIndex () == 2) 
                   { 
                       this.list.setTitle ("List3 diklik"); 
                   } 
                   else if (this.list.getSelectedIndex () == 3) 
                   { 
                       this.list.setTitle ("List4 diklik"); 
                   } 
                   else if (this.list.getSelectedIndex () == 4) 
                   { 
                       this.list.setTitle ("List5 diklik"); 
                   } 
               } 
           } 
       } 
  } 
Emulator yang digunakan untuk mengambil screen shot      :            Nokia Series 60
 
Contoh Daftar (MULTIPLE)
  / * 
  * ListMultipleMIDlet.java 
  * / 
  mengimpor javax.microedition.midlet *;. 
  mengimpor javax.microedition.lcdui *;. 
  / ** 
  *   @ Penulis   SKJ
    *     @ Version 1.0.0 
  * / 
  ListMultipleMIDlet kelas publik meluas javax.microedition.midlet.MIDlet CommandListener alat 
  { 
       swasta Tampilan layar; 
       swasta Daftar daftar; 
       swasta Command ok; 
       kembali Komando swasta; 
       swasta boolean [] bool; 
       swasta Formulir bentuk; 
       publik ListMultipleMIDlet () 
       { 
           Daftar this.list = baru ("Screen Judul", List.MULTIPLE); 
           this.ok = new Command ("OK", Command.OK, 1); 
           this.back = new Command ("Kembali", Command.BACK, 1); 
           / / This.alert = new Alert ("") 
           this.list.append ("List1", null); 
           this.list.append ("List2", null); 
           this.list.append ("List3", null); 
           this.list.append ("List4", null); 
           this.list.append ("List5", null); 
           this.bool = new boolean [this.list.size ()]; 
           this.list.addCommand (this.ok); 
           this.list.setCommandListener (ini); 
       } 
       public void startApp () 
       { 
           this.display = Display.getDisplay (ini); 
           this.display.setCurrent (this.list); 
       } 
  public void pauseApp () { 
       } 
      public void destroyApp (boolean unconditional) 
       { 
       } 
       public void commandAction (Command comm, dapat ditampilkan Disp) 
       { 
           this.list.getSelectedFlags (this.bool); 
           if (== Disp this.list) 
           { 
               if (comm == this.ok) 
               { 
                   / / Membuat form di sini sehingga akan menambahkan item pada setiap 
                   / / Tindakan.  Tidak akan menyimpan item sebelumnya 
                   this.initForm (); 
                  
                   for (int i = 0; i <this.list.size (); i + +) 
                   { 
                       if (this.bool [i] == true) 
                       { 
                           this.form.append ("ITEM" + i + "\ n"); 
                       } 
                   } 
               } 
               this.display.setCurrent (this.form); 
           } 
           lain jika (Disp == this.form) 
           { 
               if (comm == this.back) 
               { 
                   this.display.setCurrent (Alert baru ("", "Mengatur                    
                   daftar ... ", null, AlertType.INFO), this.list); 
                   this.list.setSelectedIndex (0, false); 
               } 
           }         
       } 
      
       public void initForm () 
       { 
           this.form = new Form ("MultipleListDemo"); 
           this.form.addCommand (this.back); 
           this.form.setCommandListener (ini); 
          
       } 
  } 
Emulator yang digunakan untuk mengambil screen shot      :            Nokia Series 60


Contoh Daftar (Eksklusif)
  / * 
  * ListExclusiveMIDlet.java 
  * / 
  mengimpor javax.microedition.midlet *;. 
  mengimpor javax.microedition.lcdui *;. 
  impor java.io.IOException; 
  / ** 
  * @ Author SKJ 
  * @ Version 1.0.0 
  * / 
  ListExclusiveMIDlet kelas publik meluas javax.microedition.midlet.MIDlet CommandListener alat 
  { 
       swasta Tampilan layar; 
       swasta Daftar daftar; 
       swasta Formulir bentuk; 
       swasta Command listOK; 
       swasta Command formBack; 
       swasta boolean [] bool; 
       publik ListExclusiveMIDlet () 
       { 
           initListCommand (); 
           this.initList (); 
       } 
       public void startApp () 
       { 
           this.display = Display.getDisplay (ini); 
           this.display.setCurrent (this.list); 
       } 
       public void pauseApp () 
       { 
       } 
       public void destroyApp (boolean unconditional) 
       { 
       } 
       public void commandAction (Command comm, dapat ditampilkan Disp) 
       { 
           this.list.getSelectedFlags (this.bool); 
           if (== Disp this.list) 
           { 
               if (comm == this.listOK) 
               { 
                   this.initForm (); 
                  
                   for (int i = 0; i <this.list.size (); i + +) 
                   { 
                       if (this.bool [i] == true) 
                       { 
                           this.form.append ("Item" + i + "\ n"); 
                       } 
  } 
                   / / This.display.setCurrent (Formulir baru ("Daftar Acara Aksi 
                   / / Membangkitkan FORMULIR ")); 
               } 
               this.display.setCurrent (Alert baru ("", "Tunggu ... selama 2 
               detik ", null, AlertType.INFO), this.form); 
           } 
           lain jika (Disp == this.form) 
           { 
               if (comm == this.formBack) 
               { 
                   this.display.setCurrent (Alert baru ("", "Tunggu ... selama 2 
                   detik ", null, AlertType.INFO), this.list); 
               } 
           } 
       } 
       private void initListCommand () 
       { 
           this.listOK = new Command ("OK", Command.OK, 2); 
       } 
       private void initFormCommand () 
       { 
           this.formBack = new Command ("Kembali", Command.BACK, 2); 
       } 
       / / Inisialisasi daftar di sini 
       private void initList () 
       { 
           this.initListCommand (); 
           Daftar this.list = baru ("Screen Judul", List.EXCLUSIVE); 
           this.list.append ("List1", null); 
           this.list.append ("List2", null); 
           this.list.append ("List3", null); 
           this.list.append ("List4", null); 
           this.list.append ("List5", null); 
           this.initBool (); 
           this.list.addCommand (this.listOK); 
           this.list.setCommandListener (ini); 
       } 
       private void initForm () 
       { 
           this.form = new Form ("ListExclusiveDemoForm"); 
           this.initFormCommand (); 
           this.form.addCommand (this.formBack); 
           this.form.setCommandListener (ini); 
       } 
       private void initBool () 
       { 
           this.bool = new boolean [this.list.size ()]; 
       } 
  } 
Emulator yang digunakan untuk mengambil screen shot      :            Nokia Series 60

    1. TextBox
TextBox adalah layar yang memungkinkan input pengguna dan mengedit data. Layar ini adalah setara mobile ke TextBox desktop. Konstruktor untuk TextBox mengambil nilai untuk kapasitas, yang merupakan jumlah maksimum karakter yang dapat disimpan dalam TextBox setiap saat. Juga telepon dapat menimbulkan kapasitas maksimum yaitu kapasitas yang dapat menjadi maksimum untuk TextBox ini. Sebuah aplikasi yang baik biasanya harus mengambil ke account. Para getMaxSize () metode dapat digunakan untuk memiliki nilai kapasitas maksimum yang diizinkan diperbolehkan oleh lingkungan implementasi ponsel.
TextBox dapat memiliki kendala-kendala masukan. Mereka adalah sebagai berikut:
·          public int akhir statis APAPUN
·          CONSTRAINT_MASK public int static final
·          EMAILADDR public int static final
·          public int statis NUMERIC akhir
·          PASSWORD public int static final
·          PhoneNumber public int static final
·          URL public int static final
Lingkungan implementasi perangkat membatasi masukan pengguna berdasarkan kendala-kendala. Kendala ini masukan yang sangat berguna dalam situasi tertentu seperti ketika pengguna ingin untuk memasukkan nomor telepon. Dalam hal ini jika kendala input TextBox adalah 'NUMERIC' maka ketika pengguna akan ketik pada papan tombol input secara otomatis akan menjadi nomor tercetak pada tombol tersebut. Para huruf tercetak pada tombol tersebut tidak akan merupakan bagian dari input. Dengan demikian pengguna diselamatkan dari kerumitan berulang kali mengklik pada tombol yang sama untuk memasukkan nomor. Dengan demikian kendala input harus digunakan berdasarkan tugas yang TextBox diinisialisasi.
Mencatat
TextBox secara visual sangat mirip dengan TextField. Satu-satunya perbedaan adalah bahwa ia memiliki fitur layar dan bukan kelas Item.

  1. Item
Kelas Barang mendefinisikan fungsionalitas dasar dari elemen yang dapat ditambahkan ke Formulir atau Pemberitahuan. Ada 6 jenis item yang telah didefinisikan dalam spesifikasi MIDP 1.0. Ini 6 jenis item menyediakan fungsionalitas mulai lebar. Berikut ini adalah jenis item didefinisikan oleh spesifikasi MIDP 1.0:
    1. ChoiceGroup
    2. DateField
    3. Mengukur
    4. ImageItem
    5. StringItem
    6. TextField

                            
            ChoiceGroup                                 DateField                                     Mengukur

                              
            ImageItem                                   StringItem                                  TextField

Emulator yang digunakan untuk screenshot     :            Nokia 6650

Item biasanya memiliki label. Nilai label biasanya harus diberikan tetapi tidak wajib untuk memberikan dan nilai null di tempat label adalah hukum dan itu menentukan adanya label. Juga dalam beberapa telepon dalam kasus beberapa item ketika pengguna memilih item untuk mengedit isinya, sistem beralih ke sistem yang dihasilkan layar. Misalnya pada sebagian besar ponsel saat Anda mengedit teks dalam sebuah textfield, berubah dalam tampilan dan nuansa ke TextBox. Dalam memilih perintah OK secara otomatis setelah mengedit TextField, itu lagi menjadi textfield normal dengan semua isi yang ditambahkan ke dalamnya selama pengeditan teks.

Praktik Terbaik
 
Walaupun biasanya Anda dapat menambahkan sejumlah besar item dalam satu Formulir mencoba untuk menghindari skenario seperti itu. Dari pengalaman praktis saya akan menyarankan Anda untuk menyimpan jumlah maksimum item dalam Formulir 3.
a.      ChoiceGroup
ChoiceGroup adalah elemen antarmuka pengguna untuk menampilkan beberapa pilihan di telepon ponsel. ChoiceGroup adalah subclass dari kelas Item. The 'ChoiceGroup' dapat dimasukkan pada formulir. Ada dua jenis ChoiceGroup:
Ø   Eksklusif
Jenis ChoiceGroup memungkinkan pengguna untuk memilih hanya satu pilihan dari satu set pilihan. Untuk mengetahui pilihan mana yang tertentu telah dipilih dalam 'getSelectedIndex public int ()' penggunaan ChoiceGroup EKSKLUSIF metode.
Ø   Beberapa
Jenis ChoiceGroup memungkinkan pengguna untuk memilih sejumlah pilihan dari satu set pilihan. Untuk mengetahui status seleksi pilihan yang berbeda dalam 'getSelectedFlags public int (boolean [] selectedArray_return)' penggunaan ChoiceGroup GANDA metode. Metode ini mengembalikan array boolean berisi status dari setiap elemen dari ChoiceGroup 'beberapa'. Jika unsur ini di negara yang dipilih maka variabel yang sesuai pada array boolean yang dikembalikan oleh metode ini adalah dalam keadaan 'benar' jika tidak dalam keadaan palsu.

CHOICEGROUP
  • ChoiceGroup EKSKLUSIF
  • ChoiceGroup GANDA


                                           
Contoh ChoiceGroup (Eksklusif)
  / * 
  * ChoiceGroupExclusive.java 
  * / 
  mengimpor javax.microedition.midlet *;. 
  mengimpor javax.microedition.lcdui *;. 
  / ** 
** @ Author SKJ
  *     @ Version 1.0.0 
  * / 
  public class ChoiceGroupExclusive meluas javax.microedition.midlet.MIDlet 
  { 
       swasta Formulir bentuk; 
       swasta Tampilan layar; 
       cgExclusive swasta ChoiceGroup; 
       publik ChoiceGroupExclusive () 
       { 
           this.display = Display.getDisplay (ini); 
           this.initForm (); 
           / / Mengatur tampilan saat ini 
           this.display.setCurrent (this.form); 
       } 
       public void startApp () 
       { 
          
       } 
      
       public void pauseApp () 
       { 
          
       } 
      
       public void destroyApp (boolean unconditional) 
       { 
          
       } 
      
       public void initForm () 
       { 
           / / Inisialisasi item 
           initChoiceGroupExclusive (); 
          
           / / Inisialisasi bentuk 
           this.form = new Form (""); 
           this.form.append (this.cgExclusive);                  
       } 
      
       initChoiceGroupExclusive public void () 
       { 
           this.cgExclusive = baru 
      ChoiceGroup ("ChoiceGroupLabel", ChoiceGroup.EXCLUSIVE); 
           this.cgExclusive.append ("string1", null); 
           this.cgExclusive.append ("string2", null); 
           this.cgExclusive.append ("String3", null); 
          
       }      
  } 

Emulator yang digunakan untuk mengambil screen shot      :            Nokia 6650

Contoh ChoiceGroup (Multiple)
  / * 
  * ChoiceGroupMultiple.java 
    * / 
  mengimpor javax.microedition.midlet *;. 
  mengimpor javax.microedition.lcdui *;.  
  / ** 
  ** @ Author SKJ
    *     @ Version 1.0.0 
  * / 
 
  ChoiceGroupMultiple kelas publik meluas javax.microedition.midlet.MIDlet 
  { 
       swasta Formulir bentuk; 
       swasta Tampilan layar; 
       swasta ChoiceGroup cgMultiple; 
      
       publik ChoiceGroupMultiple () 
       { 
           this.display = Display.getDisplay (ini); 
 
           this.initForm (); 
           / / Mengatur tampilan saat ini 
           this.display.setCurrent (this.form); 
          
       } 
       public void startApp () 
       { 
          
       } 
      
       public void pauseApp () 
       { 
          
       } 
      
       public void destroyApp (boolean unconditional) 
       { 
          
       } 
      
       public void initForm () 
       { 
           / / Inisialisasi item 
           initChoiceGroupMultiple (); 
          
           / / Inisialisasi bentuk 
           this.form = new Form (""); 
           this.form.append (this.cgMultiple);                          
       } 
      
       public void initChoiceGroupMultiple () 
       { 
  this.cgMultiple = baru     ChoiceGroup ("ChoiceGroupLabel", ChoiceGroup.MULTIPLE); 
           this.cgMultiple.append ("string1", null); 
           this.cgMultiple.append ("string2", null); 
           this.cgMultiple.append ("String3", null); 
       }          
  } 
Emulator yang digunakan untuk mengambil screen shot      :            Nokia 6650
b.     DateField
Sebuah DateField adalah elemen antarmuka pengguna untuk mengambil input dan menunjukkan output dalam hal tanggal dan waktu pada ponsel. DateField adalah subclass dari kelas Item. The 'DateFields' biasanya digunakan bersama dengan Formulir dalam penjadwalan dan pencatat waktu aplikasi seperti aplikasi 'dunia waktu jam. Para DateField dapat menampilkan Tanggal dan Waktu dalam format berikut:
Ø   TANGGAL
Ø   TANGGAL DAN WAKTU
Ø   WAKTU
Praktik Terbaik
DateField pada perangkat yang berbeda terlihat dan juga kadang-kadang berperilaku berbeda. Jadi perawatan harus dilakukan untuk memusyawarahkan tampilan dan nuansa dari DateField pada perangkat yang sebenarnya yang mana aplikasi harus dikerahkan sebelum menggunakan mereka dalam sebuah aplikasi.
 
Contoh Kode: DateField (Tanggal)
 
  / * 
  * Date.java 
  * / 
  mengimpor javax.microedition.midlet *;. 
  mengimpor javax.microedition.lcdui *;. 
  / ** 
  ** @ Author SKJ
    * @ Version 1.0.0 
  * / 
  DateMIDlet kelas publik meluas javax.microedition.midlet.MIDlet 
  { 
       swasta Formulir bentuk; 
       swasta Tampilan layar; 
       swasta DateField tanggal; 
      
       publik DateMIDlet () 
       { 
           this.display = Display.getDisplay (ini); 
 
           this.initForm (); 
          
           / / Mengatur tampilan saat ini 
           this.display.setCurrent (this.form); 
       } 
       public void startApp () 
       { 
          
       } 
       public void pauseApp () 
       { 
          
       } 
       public void destroyApp (boolean unconditional) 
       { 
          
       } 
       public void initForm () 
       { 
           / / Inisialisasi item 
           initDateFiledDate (); 
          
           / / Inisialisasi bentuk 
           this.form = new Form (""); 
           this.form.append (this.date);                  
       } 
      
       public void initDateFiledDate () 
       { 
           this.date = new DateField ("DateFieldLabel", DateField.DATE); 
       }      
  } 
Emulator yang digunakan untuk mengambil screen shot      :            Nokia 6650
 
Contoh Kode: DateField (DATE_TIME)
 
  / * 
  * Date.java 
  * / 
 
  mengimpor javax.microedition.midlet *;. 
  mengimpor javax.microedition.lcdui *;. 
 
  / ** 
   * @ Author SKJ
    * @ Version 1.0.0 
  * / 
 
  DateTimeMIDlet kelas publik meluas javax.microedition.midlet.MIDlet 
  { 
       swasta Formulir bentuk; 
       swasta Tampilan layar; 
       swasta DateField datetime; 
      
       publik DateTimeMIDlet () 
       { 
           this.display = Display.getDisplay (ini); 
 
           this.initForm (); 
          
           / / Mengatur tampilan saat ini 
           this.display.setCurrent (this.form); 
          
       } 
 
       public void startApp () 
       { 
          
       } 
      
       public void pauseApp () 
       { 
          
       } 
      
       public void destroyApp (boolean unconditional) 
       { 
          
       } 
      
       public void initForm () 
       { 
           / / Inisialisasi item 
           initDateFiledDateTime (); 
          
           / / Inisialisasi bentuk 
           this.form = new Form (""); 
           this.form.append (this.dateTime);                  
       } 
      
       public void initDateFiledDateTime () 
       { 
           this.dateTime = baru 
                  DateField ("DateFieldLabel", DateField.DATE_TIME); 
       }          
  } 
Emulator yang digunakan untuk mengambil screen shot      :            Nokia 6650
 
Contoh Kode: DateField (Waktu)
 
  / * 
  * Date.java 
  * / 
 
  mengimpor javax.microedition.midlet *;. 
  mengimpor javax.microedition.lcdui *;. 
 
  / ** 
  * @ Author SKJ 
  * @ Version 1.0.0 
  * / 
 
  TimeMIDlet kelas publik meluas javax.microedition.midlet.MIDlet 
  { 
       swasta Formulir bentuk; 
       swasta Tampilan layar; 
       swasta DateField waktu; 
      
       publik TimeMIDlet () 
       { 
           this.display = Display.getDisplay (ini); 
 
           this.initForm (); 
          
           / / Mengatur tampilan saat ini 
           this.display.setCurrent (this.form); 
          
       } 
       public void startApp () 
       { 
          
       } 
      
       public void pauseApp () 
       { 
          
       } 
      
       public void destroyApp (boolean unconditional) 
       { 
          
       } 
      
       public void initForm () 
       { 
           / / Inisialisasi item 
           initDateFiledTime (); 
          
           / / Inisialisasi bentuk 
           this.form = new Form (""); 
           this.form.append (this.time);          
       } 
      
       public void initDateFiledTime () 
       { 
           this.time = new DateField ("DateFieldLabel", DateField.TIME); 
       }          
  } 
Emulator yang digunakan untuk mengambil screen shot      :            Nokia 6650

c.      Mengukur
Gauge adalah elemen antarmuka pengguna untuk menampilkan data dalam bentuk bar. Pada beberapa perangkat alat ukur diwakili dalam bentuk serangkaian bar. Gauge dapat digunakan untuk menampilkan jenis berikut layar:

Ø   'Tunggu' Layar
Ø   "Mengisi" Layar
Ø   'Bar Graph' Layar

Tampilan dan nuansa gauge tergantung pada handset. Fakta ini harus disimpan dalam pikiran. The 'setValue public void (int nilai)' metode yang digunakan untuk memperbarui nilai-nilai Gauge tersebut pemrograman.
Ada dapat dua jenis Gauges
Ø   Interaktif
Dalam kasus sebuah pengukur interaktif pengguna dapat memodifikasi nilai dengan ada tindakan. Pengguna akhir dapat menggunakan tombol kiri dan Tombol kanan untuk mengedit Gauge tersebut.
 
Ø   Non - Interaktif
Dalam kasus non - pengukur interaktif pengguna tidak dapat memodifikasi nilai. Modifikasi nilai hanya mungkin melalui penggunaan 'setValue public void (int nilai)' metode.

Nilai minimum untuk Gauge adalah 0. Jika Anda akan menetapkan nilai awal Gauge untuk lebih dari nilai maksimum yang diizinkan maka secara otomatis akan menetapkan nilai maksimum sampai 99.

Contoh Kode: Gauge (Non-interaktif)
/ *
  * DemoMIDlet.java
* /

mengimpor javax.microedition.midlet *;.
mengimpor javax.microedition.lcdui *;.

/ **
  *
  * @ Author SKJ
  * @ Version 1.0.0
  * /

demoMIDlet kelas publik meluas javax.microedition.midlet.MIDlet
{
    swasta Formulir bentuk;
    swasta Tampilan layar;
    swasta Gauge gaugeNonInteractive;
   
    publik demoMIDlet ()
    {
        this.display = Display.getDisplay (ini);

         this.initForm ();
       
        / / Mengatur tampilan saat ini
        this.display.setCurrent (this.form);
       
    }
    public void startApp ()
    {
       
    }
   
    public void pauseApp ()
    {
       
    }
   
    public void destroyApp (boolean unconditional)
    {
       
    }
   
    public void initForm ()
    {
        / / Inisialisasi item
        initGaugeNonInteractive ();
       
        / / Inisialisasi bentuk
        this.form = new Form ("");
        this.form.append (this.gaugeNonInteractive);                
    }
   
    public void initGaugeNonInteractive ()
    {
        this.gaugeNonInteractive Gauge = baru ("GaugeLabel", false, 100,0);
    }        
}


Emulator yang digunakan untuk mengambil Screen Shot     :            Nokia Series 60

Contoh Kode: Gauge (Interaktif)
  / * 
  * GaugeInteractive.java 
  * / 
 
  mengimpor javax.microedition.midlet *;. 
  mengimpor javax.microedition.lcdui *;. 
 
  / * 
  * @ Author SKJ
  * @ Version 1.0.0
  * / 
 
  GaugeInteractive kelas publik meluas javax.microedition.midlet.MIDlet 
  { 
      swasta Formulir bentuk; 
       swasta Tampilan layar; 
       swasta Gauge gaugeInteractive; 
      
       publik GaugeInteractive () 
       { 
           this.display = Display.getDisplay (ini); 
 
           this.initForm (); 
          
           / / Mengatur tampilan saat ini 
           this.display.setCurrent (this.form); 
          
       } 
       public void startApp () 
       { 
          
       } 
      
       public void pauseApp () 
       { 
          
       } 
      
       public void destroyApp (boolean unconditional) 
       { 
          
       } 
      
       public void initForm () 
       { 
           / / Inisialisasi item 
           initGaugeInteractive (); 
          
           / / Inisialisasi bentuk 
           this.form = new Form (""); 
           this.form.append (this.gaugeInteractive);                  
       } 
      
       public void initGaugeInteractive () 
       { 
           this.gaugeInteractive Gauge = baru ("GaugeLabel", benar, 100,0); 
       }          
  } 
Emulator yang digunakan untuk mengambil screen shot      :            Nokia Series 60

d.     ImageItem
Kelas ImageItem menyediakan fungsi untuk menambahkan gambar dalam Formulir dan Tanda. Kelas ini juga menyediakan fasilitas untuk mengontrol tata letak gambar. Berikut ini adalah layout yang diberikan kepada kami di ImageItem:
·          LAYOUT_LEFT
·          LAYOUT_RIGHT
·          LAYOUT_CENTER
·          LAYOUT_NEWLINE_BEFORE
·          LAYOUT_NEWLINE_AFTER
·          LAYOUT_DEFAULT.

Menyediakan LAYOUT_DEFAULT menyebabkan sistem untuk menggunakan kebijakan default tata letak sistem. Juga ini hanya indikasi ke perangkat. Perangkat tidak dapat ikuti karena kendala sumber daya. Juga ingat bahwa hanya berubah gambar harus ditambahkan ke dalamnya, selain itu akan membuang IllegalArgumentException.

Constructor ImageItem memiliki tanda tangan berikut:
§   publik ImageItem (label java.lang.String, Gambar img, tata letak int, altText java.lang.String)

Contoh Kode (Cuplikan): ImageITem
imgItem = new ImageItem ("image1", starImage, LAYOUT_CENTER, "Star Gambar");

 

Emulator yang digunakan untuk mengambil screen shot      :            Nokia 6650
 
e.      StringItem
StringItem berisi:
·          Label
·          Teks
Kedua label dan teks harus string. Ini subclass dari Barang digunakan untuk memberikan output string ke pengguna dan tidak mendukung input string dari pengguna. Meskipun aplikasi dapat dengan sendirinya mengubah isi StringItem tersebut.
Praktik Terbaik
Penyajian label dan teks mungkin berbeda di berbagai perangkat. Beberapa perangkat menampilkan label seperti tebal, sementara yang lainnya tidak. Untuk lebih memahami presentasi antarmuka pengguna pada perangkat yang berbeda, Anda dapat berlangganan 'SKJ KnowledgeNET' dengan menulis ke knowledgenet@skjworld.com.

Kode Contoh: StringItem
/ *
  * DemoMIDlet.java
* /
mengimpor javax.microedition.midlet *;.
mengimpor javax.microedition.lcdui *;.
/ **
  * @ Author SKJ
  * @ Version 1.0.0
  * /
demoMIDlet kelas publik meluas javax.microedition.midlet.MIDlet
{
    swasta Formulir bentuk;
    swasta Tampilan layar;
    swasta StringItem StringItem;    
    publik demoMIDlet ()
    {
        mencoba
       {
              this.display = Display.getDisplay (ini);
              this.initForm ();
              / / Mengatur tampilan saat ini
              this.display.setCurrent (this.form);
        }
        catch (Exception e)
        {
            this.display.setCurrent (Alert baru ("Konstruktor di"));
        }
       
    }
    public void startApp ()
    {
       
    }
   
    public void pauseApp ()
    {
       
    }
   
    public void destroyApp (boolean unconditional)
    {
       
}
    public void initForm ()
    {
        / / Inisialisasi item
        initStringItem ();
       
        / / Inisialisasi bentuk
         this.form = new Form ("");
        this.form.append (this.stringItem);                       
    }
   
    public void initStringItem ()
    {
        this.stringItem = new StringItem ("Label", "Teks");
    }    
}

Emulator yang digunakan untuk mengambil screen shot      :            Nokia 6650

f.       TextField
Konstruktor untuk textfield mengambil nilai untuk kapasitas, yang merupakan jumlah karakter maksimum yang dapat disimpan di textfield setiap saat. Juga pelaksanaannya dapat menimbulkan kapasitas maksimum yaitu kapasitas yang dapat menjadi maksimum untuk textfield ini. Sebuah aplikasi yang baik biasanya harus mengambil ke account. Para getMaxSize () metode dapat digunakan untuk memiliki nilai kapasitas maksimum yang diizinkan diperbolehkan oleh lingkungan implementasi.
 
Textfield dapat memiliki kendala masukan banyak. Mereka adalah sebagai berikut:
·          public int akhir statis APAPUN
·          CONSTRAINT_MASK public int static final
·          EMAILADDR public int static final
·          public int statis NUMERIC akhir
·          PASSWORD public int static final
·          PhoneNumber public int static final
·          URL public int static final

Lingkungan implementasi perangkat membatasi masukan pengguna berdasarkan kendala-kendala. Kendala ini masukan yang sangat berguna dalam situasi tertentu seperti ketika pengguna ingin untuk memasukkan nomor telepon. Dalam hal ini jika kendala input TextBox adalah 'NUMERIC' maka ketika pengguna akan ketik pada papan tombol input secara otomatis akan menjadi nomor tercetak pada tombol tersebut. Para huruf tercetak pada tombol tersebut tidak akan merupakan bagian dari input. Dengan demikian pengguna diselamatkan dari kerumitan berulang kali mengklik pada tombol yang sama untuk memasukkan nomor. Dengan demikian kendala input harus digunakan berdasarkan tugas yang TextBox diinisialisasi.

Emulator yang digunakan untuk mengambil screen shot      :            Nokia 6650

Kode Contoh: textfield (APAPUN)
 
  / * 
  * TextFieldAny.java 
  * / 
 
  mengimpor javax.microedition.midlet *;. 
  mengimpor javax.microedition.lcdui *;. 
 
  / ** 
  * @ Author SKJ
    * @ Version 1.0.0 
  * / 
 
  TextFieldAnyMIDlet kelas publik meluas javax.microedition.midlet.MIDlet 
  { 
       swasta Formulir bentuk; 
      swasta Tampilan layar; 
       swasta textfield apapun; 
      
       publik TextFieldAnyMIDlet () 
       { 
           this.display = Display.getDisplay (ini); 
 
           this.initForm (); 
          
           / / Mengatur tampilan saat ini 
           this.display.setCurrent (this.form); 
          
       } 
 
       public void startApp () 
       { 
          
       } 
      
       public void pauseApp () 
       { 
          
       } 
      
       public void destroyApp (boolean unconditional) 
       { 
          
       } 
      
       public void initForm () 
       { 
           / / Inisialisasi item 
           initTextFieldAny (); 
          
           / / Inisialisasi bentuk 
           this.form = new Form (""); 
           this.form.append (this.any);                          
       } 
      
       public void initTextFieldAny () 
       { 
           this.any = baru         
           TextField ("TextFieldLabel", "Teks", 50, TextField.ANY); 
       }          
  } 

Emulator yang digunakan untuk mengambil screen shot      :            Nokia 6650
 
Contoh Kode: textfield (EMAILADDR)
 
  / * 
  * TextFieldEmailAdd.java 
  * / 
 
  mengimpor javax.microedition.midlet *;. 
  mengimpor javax.microedition.lcdui *;. 
 
  / ** 
  * @ Author SKJ 
  * @ Version 1.0.0 
  * / 
 
  TextFieldEmailAddMIDlet kelas publik meluas javax.microedition.midlet.MIDlet 
  { 
       swasta Formulir bentuk; 
       swasta Tampilan layar; 
       swasta textfield emailAdd; 
      
       publik TextFieldEmailAddMIDlet () 
       { 
           this.display = Display.getDisplay (ini); 
 
           this.initForm (); 
          
           / / Mengatur tampilan saat ini 
           this.display.setCurrent (this.form); 
          
       } 
       public void startApp () 
       { 
          
       } 
      
       public void pauseApp () 
       { 
          
       } 
      
       public void destroyApp (boolean unconditional) 
       { 
          
       } 
      
       public void initForm () 
       { 
           / / Inisialisasi item 
           initTextFieldEmailAdd (); 
          
           / / Inisialisasi bentuk 
           this.form = new Form (""); 
           this.form.append (this.emailAdd);                  
       } 
      
       public void initTextFieldEmailAdd () 
       { 
           this.emailAdd = baru 
                  TextField ("TextFieldLabel", "Teks", 50, TextField.EMAILADDR); 
       }          
  } 
Emulator yang digunakan untuk mengambil screen shot      :            Nokia 6650
 
Contoh Kode: textfield (NUMERIC)
 
  / * 
  * TextFieldNumeric.java 
  * / 
 
  mengimpor javax.microedition.midlet *;. 
  mengimpor javax.microedition.lcdui *;. 
 
  / ** 
  * @ Author SKJ 
  * @ Version 1.0.0 
  * / 
 
  TextFieldNumericMIDlet kelas publik meluas javax.microedition.midlet.MIDlet 
  { 
       swasta Formulir bentuk; 
       swasta Tampilan layar; 
       swasta textfield numerik; 
 
       public void startApp () 
       { 
           mencoba 
           { 
                this.display = Display.getDisplay (ini); 
 
                this.initForm (); 
          
                / / Mengatur tampilan saat ini 
                this.display.setCurrent (this.form); 
           } 
 
           catch (Exception e) 
           { 
               this.display.setCurrent (Alert baru ("Konstruktor di")); 
           } 
       } 
      
       public void pauseApp () { 
       } 
      
       public void destroyApp (boolean unconditional) { 
       } 
      
       public void initForm () 
       { 
           / / Inisialisasi item 
           initTextFieldNumeric (); 
          
           / / Inisialisasi bentuk 
           this.form = new Form (""); 
           this.form.append (this.numeric);                  
       } 
      
       public void initTextFieldNumeric () 
       { 
           this.numeric = baru                            TextField ("TextFieldLabel", "", 10, TextField.NUMERIC); 
       }         
  } 
Emulator yang digunakan untuk mengambil screen shot      :            Nokia 6650
 
Contoh Kode: textfield (SANDI)
 
  / * 
  * TextFieldPassword.java 
  * / 
 
  mengimpor javax.microedition.midlet *;. 
  mengimpor javax.microedition.lcdui *;. 
 
  / ** 
  * @ Author SKJ 
  * @ Version 1.0.0 
  * / 
 
  PasswordMIDlet kelas publik meluas javax.microedition.midlet.MIDlet 
  { 
       swasta Formulir bentuk; 
       swasta Tampilan layar; 
       swasta textfield password; 
 
       public void startApp () 
       { 
           mencoba 
           {          
                this.display = Display.getDisplay (ini); 
 
                this.initForm (); 
          
                / / Mengatur tampilan saat ini 
                this.display.setCurrent (this.form); 
           } 
 
           catch (Exception e) 
           { 
               this.display.setCurrent (Alert baru ("Konstruktor di")); 
           } 
       } 
      
       public void pauseApp () { 
       } 
      
       public void destroyApp (boolean unconditional) {          
       } 
      
       public void initForm () 
       { 
           / / Inisialisasi item 
           initTextFieldPassword (); 
          
           / / Inisialisasi bentuk 
           this.form = new Form (""); 
           this.form.append (this.password);                          
       } 
      
       public void initTextFieldPassword () 
       { 
           this.password = baru         
           TextField ("TextFieldLabel", "", 10, TextField.PASSWORD); 
       }      
  } 
Emulator yang digunakan untuk mengambil screen shot      :            Nokia 6650
 
Contoh Kode: textfield (PhoneNumber)
 
  / * 
  * TextFieldPN.java 
  * / 
 
  mengimpor javax.microedition.midlet *;. 
  mengimpor javax.microedition.lcdui *;. 
 
  / ** 
  * @ Author SKJ 
  * @ Version 1.0.0 
  * / 
 
 
  PhoneNumberMIDlet kelas publik meluas javax.microedition.midlet.MIDlet { 
       swasta Formulir bentuk; 
       swasta Tampilan layar; 
       swasta textfield PhoneNumber; 
      
       public void startApp () 
       { 
           mencoba 
           { 
                this.display = Display.getDisplay (ini); 
 
                this.initForm (); 
          
                / / Mengatur tampilan saat ini 
                this.display.setCurrent (this.form); 
           } 
 
           catch (Exception e) 
           { 
               this.display.setCurrent (Alert baru ("Konstruktor di")); 
           } 
       } 
      
       public void pauseApp () { 
       } 
      
       public void destroyApp (boolean unconditional) { 
       } 
      
       public void initForm () 
       { 
           / / Inisialisasi item 
           initTextFieldPhoneNumber (); 
          
           / / Inisialisasi bentuk 
           this.form = new Form (""); 
           this.form.append (this.phoneNumber);                          
       } 
      
       public void initTextFieldPhoneNumber () 
      { 
           this.phoneNumber = baru 
                  TextField ("TextFieldLabel", "111", 10, TextField.PHONENUMBER); 
       }          
  } 
Emulator yang digunakan untuk mengambil screen shot      :            Nokia 6650
 
Contoh Kode: textfield (URL)
 
  / * 
  * TextFieldURL.java 
  * / 
 
  mengimpor javax.microedition.midlet *;. 
  mengimpor javax.microedition.lcdui *;. 
 
  / ** 
  * @ Author SKJ 
  * @ Version 1.0.0 
  * / 
 
  URLMIDlet kelas publik meluas javax.microedition.midlet.MIDlet 
  { 
       swasta Formulir bentuk; 
       swasta Tampilan layar; 
       swasta textfield url; 
      
       public void startApp () 
       { 
           try { 
           this.display = Display.getDisplay (ini); 
 
           this.initForm (); 
          
           / / Mengatur tampilan saat ini 
           this.display.setCurrent (this.form); 
           } 
           catch (Exception e) 
           { 
               this.display.setCurrent (Alert baru ("Konstruktor di")); 
           } 
       } 
      
       public void pauseApp () { 
       } 
     
       public void destroyApp (boolean unconditional) { 
       } 
      
       public void initForm () 
       { 
           / / Inisialisasi item 
           initTextFieldURL (); 
          
           / / Inisialisasi bentuk 
           this.form = new Form (""); 
           this.form.append (this.url);                  
       } 
      
       public void initTextFieldURL () 
       { 
           this.url = baru     
                  TextField ("TextFieldLabel", "abc", 10, TextField.URL); 
       }          
  } 
Emulator yang digunakan untuk mengambil screen shot      :            Nokia 6650

  1. Komando s
Setiap aplikasi perlu berinteraksi dengan pengguna. Perintah menawarkan salah satu bentuk terbaik dari interaksi pengguna. Mereka adalah setara mobile 'Command Button' desktop. Mereka bisa melayani berbagai tujuan. Beberapa di antaranya adalah:
·          Pemrograman tombol lunak ponsel
·          Alternatif user input
·          Otomatis menu generasi

Kelas Command memiliki konstruktor berikut:
·          publik Command (String label, int CommandType, int prioritas)

Jadi konstruktor komando memerlukan tiga item informasi:
·          Label
·          Jenis
·          Prioritas

Label
String label ditampilkan kepada pengguna untuk mewakili perintah. Dalam perintah memiliki jenis perintah selain LAYAR, nilai label dapat diganti oleh label sistem tertentu yang lebih tepat untuk perintah pada perangkat.

Jenis
Jenis perintah mengacu pada tujuan penggunaan perintah. Hal ini praktis digunakan oleh perangkat untuk menyajikan perintah pada tempat yang layak sesuai dengan antarmuka pengguna perangkat. Penempatan perintah pada tombol lunak kiri atau tombol lunak yang tepat tergantung pada jenis dari perintah.

The 8 berikut jenis perintah yang ada:
·          KEMBALI public int static final
·          int akhir public static BATAL
·          EXIT public int static final
·          BANTUAN public int static final
·          ITEM public int static final
·          OK public int static final
·          LAYAR public int static final
·          UNREG public int static final

Prioritas
Nilai Prioritas digunakan untuk menggambarkan pentingnya perintah relatif terhadap perintah lain pada layar yang sama.   Sejumlah rendah menunjukkan kepentingan yang lebih besar. Jika dua perintah akan memiliki prioritas yang sama dan ketik maka ada pesanan tergantung pada urutan yang dikodekan.
 
Perintah dapat ditambahkan ke contoh dapat ditampilkan kelas atau salah satu kelas sub. Juga setiap kelas yang ingin mendengarkan dan bereaksi terhadap peristiwa yang dihasilkan oleh perintah harus mengimplementasikan interface CommandListener. Antarmuka CommandListener berisi satu metode yaitu:
  • commandAction (Command com, dapat ditampilkan Disp)
 
Contoh Kode: CommandListener (Metode - commandAction)
  public void commandAction (Command com, dapat ditampilkan Disp) 
  { 
      if (== Disp Form1) 
      { 
                      if (== com this.back) 
                                     { 
                                                    this.parent.setDisplayable (this.list); 
                                     } 
                      } 
  } 
 
Kode ini menunjukkan contoh penerapan tindakan untuk perintah kembali Form1. Setiap kali pengguna akan menekan perintah kembali Form1 kode ini akan mengatur tampilan saat ini untuk daftar.
 
  1. Lainnya
 
    1. Jantung
Kelas Ticker mengimplementasikan elemen antarmuka pengguna yang berisi sepotong teks yang berjalan terus menerus di seluruh layar. Hal ini seperti elemen 'tenda' dari Hyper Mark-up Language Text (HTML). Sebagian besar perangkat menerapkannya sebagai aliran terus berjalan teks. Tapi ada beberapa perangkat yang memiliki implementasi yang mengesankan lainnya dari kelas ini.

Fitur dari kelas Ticker adalah sebagai berikut:
·          Arah ditentukan oleh pelaksanaannya. Hal ini biasanya kiri ke kanan atau sebaliknya seorang. Tapi beberapa perangkat memilikinya dari bawah ke atas atau sebaliknya sebaliknya.
·          Kecepatan bergulir ditentukan oleh pelaksanaannya.
·          Tidak ada cara bagi programmer untuk memulai atau menghentikan ticker seperti yang diinginkan.
·          Ticker biasanya selalu bergulir terus menerus kecuali dalam beberapa kasus untuk menghemat daya ketika perangkat tidak aktif untuk beberapa waktu.
·          Ticker yang sama dapat digunakan bersama oleh beberapa objek Layar.

Para tickers dapat digunakan untuk mengkomunikasikan informasi penting kepada pengguna, misalnya dapat digunakan untuk memilikinya mewakili ticker saham pasar.

PRAKTEK TERBAIK
Tampilan dan nuansa perubahan Ticker dari perangkat ke perangkat. Misalnya Ticker umumnya akan bergerak dari kanan ke kiri di sebagian besar perangkat tetapi dalam SonyEricsson T610 bergerak secara vertikal tidak horizontal.

Contoh Kode: Ticker
/ *
  * TickerMIDlet.java
  *
  * Dibuat pada tanggal 6 Januari 2004, 4:23
  * /

mengimpor javax.microedition.midlet *;.
mengimpor javax.microedition.lcdui *;.

/ **
  *
  * @ Author   SKJ
  * @ Version 1.0.0
  * /
TickerMIDlet kelas publik meluas javax.microedition.midlet.MIDlet
{
    swasta Tampilan layar;
    swasta Formulir bentuk;
    swasta Ticker ticker;    
    swasta StringItem Sitem;
   
    public void startApp ()
    {
        this.display = Display.getDisplay (ini);

        / / Inisialisasi elemen user interface
        init ();

        this.display.setCurrent (this.form);
    }
   
    public void init ()
    {
            / / Menginisialisasi bentuk, item string dan ticker
            this.form = new Form ("Form 1");

            this.sItem = new StringItem ("Ticker \ n", "ABC Perusahaan   Harga Saham ");
            this.form.append (this.sItem);

            this.ticker = new Ticker ("ABC 42,45, BBX 32.70.09, CDS 119,3");
       
            / / Pengaturan ticker pada form
            this.form.setTicker (ticker);
    }
   
    public void pauseApp () {
    }
   
    public void destroyApp (boolean unconditional) {   
    }
}
    1. Gambar
Kelas Gambar digunakan untuk memegang data citra grafis. Gambar terdiri dari dua jenis:
·          Abadi
Gambar berubah biasanya dapat dibuat dengan memuat data gambar dari:

o     Sumber daya bundel
o     File
o     Jaringan

Setelah dibuat, gambar abadi tidak dapat dimodifikasi.

Obyek setelah hanya membutuhkan gambar berubah:
o     Waspada
o     Pilihan
o     Bentuk
o     ImageItem
·          Tdk tetap
Gambar-gambar ini dibuat dalam area memori di luar layar. Ini dapat dicat oleh aplikasi setelah menciptakan objek grafis tegas untuk lukisan pada mereka.

Sementara membuat game dan aplikasi grafis lainnya, baik kekal dan bisa berubah gambar yang memanfaatkan.

Tidak ada komentar:

Posting Komentar