Selasa, 12 Juni 2012

Unit II - Bab 4 - Bagaimana bekerja dengan Grafik Rendah?


Unit II - Bab 4 - Bagaimana bekerja dengan Grafik Rendah?

Rendahnya tingkat grafis   diperlukan ketika programmer ingin memiliki kontrol yang sangat baik pada isi layar. Hal ini mungkin dalam kasus permainan atau layar pengguna kustom seperti grid.
Kanvas   adalah kelas yang sangat penting bagi pengembang aplikasi permainan dan multimedia. Juga kelas ini adalah sebuah bermanfaat bagi mereka yang kebutuhannya tidak dipenuhi oleh API antarmuka pengguna tingkat tinggi. Beberapa skenario praktis mungkin di mana kelas ini digunakan sebagai pengganti API antarmuka pengguna tingkat tinggi adalah:
  • Permainan
  • Disesuaikan masukan layar
  • Multimedia presentasi
  • Lokal bahasa input
  • Disesuaikan keluaran layar
Metode cat yang merupakan metode abstrak yang harus diimplementasikan untuk operasi menggambar disesuaikan.
Contoh
public void paint (Graphics g)
{
g.drawLine (10,10,100,100);
}
Kelas kanvas memberikan kemampuan untuk pengembang aplikasi untuk memiliki kontrol berbutir halus selama input pengguna antarmuka. Pengembang memiliki kemampuan untuk mengendalikan reaksi aplikasi untuk input pengguna melalui penggunaan metode berikut:
Kunci-kunci
·          void dilindungi keyPressed (int keyCode)
·          void dilindungi keyReleased (int keyCode)
·          void dilindungi keyRepeated (int keyCode)
Pointer
·          protected void pointerDragged (int x, int y)
·          protected void pointerPressed (int x, int y)
·          void dilindungi pointerReleased (int x, int y)
Setiap kunci untuk acara yang dilaporkan ke aplikasi Profile Information Mobile Device diberikan kode kunci dan nilai-nilai kode tombol yang berbeda untuk setiap tombol hardware kecuali dua kunci adalah sinonim jelas satu sama lain. Berikut ini adalah kunci didefinisikan oleh platform MIDP 1.0:
·          public int akhir statis KEY_NUM0
·          public int akhir statis KEY_NUM1
·          public int akhir statis KEY_NUM2
·          public int akhir statis KEY_NUM3
·          public int akhir statis KEY_NUM4
·          public int akhir statis KEY_NUM5
·          public int akhir statis KEY_NUM6
·          public int akhir statis KEY_NUM7
·          public int akhir statis KEY_NUM8
·          public int akhir statis KEY_NUM9
·          KEY_STAR public int static final
·          KEY_POUND public int static final
Tombol yang disebutkan di atas sesuai dengan pad ITU-T telepon standar kunci standar. Mungkin juga ada tombol lain yang tidak diperlukan harus ada di semua ponsel. Dengan demikian penggunaan tombol standar yang disebutkan di atas dalam aplikasi yang dianjurkan.
Dianjurkan dari pengalaman praktis yang untuk aplikasi yang membutuhkan portabilitas peristiwa tombol panah dan game peristiwa terkait juga harus menggunakan tindakan permainan bersama kode tombol dan nama kunci. Tindakan permainan berikut didefinisikan dalam platform ini:
·          public int akhir statis UP
·          public int akhir statis BAWAH
·          int akhir public static KIRI
·          KANAN public int static final
·          KEBAKARAN public int static final
·          public int statis GAME_A akhir
·          GAME_B public int static final
·          GAME_C public int static final
·          int akhir public static GAME_D  
Para getGameAction public int (int keyCode) metode ini digunakan untuk mendapatkan tindakan permainan dari kode tombol
Contoh
  public void keyPressed (int keyCode) 
  { 
           int gameAction; 
           gameAction = getGameAction (keyCode); 
          
            if (== gameAction Canvas.FIRE) 
            { 
                  / / Kode 
             } 
  } 
Catatan: Kelas ini harus diimplementasikan dan digunakan. Juga ingat untuk memanggil repaint metode setiap kali Anda ingin me-refresh isi.
Grafis
Jika kanvas adalah batu tulis dari kelas Graphics adalah pena. Melihat kendala yang ditimbulkan dengan model pemrograman, kelas ini berisi beberapa metode yang sangat baik untuk menggambar pada permukaan 2 dimensi.
Kelas ini mendukung penggantian pixel sederhana dan tidak mendukung operasi raster. Ini mendukung model warna 24-bit, dengan:
  • 8 bit - Merah
  • 8 bit - Green
  • 8 bit - Blue
Sebagai lingkungan ponsel adalah salah satu yang sangat terbatas, dalam hal sumber daya, oleh karena perangkat tidak mendukung warna 24 bit. Oleh karena itu warna yang diminta oleh aplikasi jika tersedia, akan diganti sesuai dengan warna yang sesuai tersedia pada perangkat. Meskipun ini adalah fitur yang baik, perawatan harus dilakukan untuk menguji ini pada perangkat yang sebenarnya terlibat sebagai hasil akhir dapat bervariasi secara signifikan dari perangkat ke perangkat. Biasanya perangkat warna memiliki 4096 atau 65536 warna hari ini.
Kelas ini merupakan bagian dari API Tingkat rendah dan dengan demikian hasilnya tidak sangat portabel. Namun Anda sebagai seorang programmer dapat mencapai tingkat tinggi mudah dibawa dengan menggunakan:
  • 'SKJ UI Portabilitas Teknik'
Beberapa gambar besar dan operasi lain yang didukung oleh kelas ini adalah:
  • Guntingan
  • Arc Menggambar
    • Polos
    • Terisi
  • Karakter Menggambar
  • String Menggambar
  • Gambar Menggambar
  • Menggambar garis
  • Rectangle Menggambar
    • Polos
    • Terisi
    • Bulat
    • Bulat Diisi
  • Warna
  • Terjemahan
  • Sejumlah operasi lainnya
Operasi ini adalah dari penggunaan besar dalam game dan tampilan multimedia.
DrawString Metode                                                                               
DrawRoundRect Metode
1.      Menggambar gambar pada kanvas
Kode Contoh: kanvas & Graphics
  / ************************* / 
  / * CanvasMIDlet.java                                 * / 
  / ************************* / 
  mengimpor javax.microedition.midlet *;. 
  mengimpor javax.microedition.lcdui *;. 
  impor java.io.IOException; 
 
  / ** 
  * @ Author SKJ 
  * @ Version 1.0.0 
  * / 
 
  CanvasMIDlet public class MIDlet meluas mengimplementasikan CommandListener 
  { 
       swasta Tampilan layar; 
       swasta CanvasDemo cDemo; 
       swasta Daftar daftar; 
       waspada Pemberitahuan swasta; 
       private int setInt; 
       swasta Gambar gambar; 
       kembali Komando swasta; 
       publik CanvasMIDlet () 
       { 
           this.cDemo = new CanvasDemo (ini); 
           this.createImage (); 
           this.initAlert (); 
           this.initList (); 
           this.setInt = 0; 
       } 
 
       public void startApp () 
       { 
           this.display = Display.getDisplay (ini); 
           this.display.setCurrent (this.list); 
       } 
      
       public void pauseApp () { 
       } 
      
       public void destroyApp (boolean unconditional) { 
       } 
      
       private void createImage () 
       { 
           mencoba 
           { 
               this.image = Image.createImage ("/ res / starII.png"); 
           } 
 
           catch (IOException ioe) 
           { 
                  System.out.println ("Error"); 
           } 
       } 
       private void initCommand () 
       { 
           this.back = new Command ("Kembali", Command.BACK, 2); 
       } 
      
       private void initAlert () 
       { 
           this.alert = new Alert ("Pemberitahuan", "Tunggu ... Setting", this.image, AlertType.INFO); 
       } 
       private void initList () 
       { 
           Daftar this.list = baru ("Graphics Daftar", List.IMPLICIT); 
           this.list.append ("00." + "" + "Arc", null); 
           this.list.append ("01." + "" + "Rectangular", null); 
           this.list.append ("02." + "" + "RoundRect", null); 
           this.list.append ("03." + "" + "Line", null); 
           this.list.append ("04." + "" + "FillArc", null); 
           this.list.append ("05." + "" + "FillRect", null); 
           this.list.append ("06." + "" + "FillRoundRect", null); 
           this.list.append ("07." + "" + "foto", null); 
           this.list.append ("08." + "" + "DrawString", null); 
           this.list.append ("09." + "" + "DrawChar", null); 
           this.list.append ("10." + "" + "DrawCharArray", null); 
           this.list.append ("11." + "" + "DrawSubString", null); 
           this.list.setCommandListener (ini); 
       } 
       public void commandAction (Command comm, dapat ditampilkan Disp) 
       { 
           if (== Disp this.list) 
           { 
               if (comm     == List.SELECT_COMMAND) 
               { 
                   if (this.list.getSelectedIndex () == 0) 
                   { 
                      this.setInt = 0; 
                      this.display.setCurrent (baru CanvasDemo (ini)); 
                   } 
                   else if (this.list.getSelectedIndex () == 1) 
                   { 
                       this.setInt = 1; 
                       this.display.setCurrent (baru CanvasDemo (ini)); 
                   } 
                   else if (this.list.getSelectedIndex () == 2) 
                   { 
                       this.setInt = 2; 
                       this.display.setCurrent (baru CanvasDemo (ini)); 
                   } 
                   else if (this.list.getSelectedIndex () == 3) 
                   { 
                       this.setInt = 3; 
                       this.display.setCurrent (baru CanvasDemo (ini)); 
                   }                  
                   else if (this.list.getSelectedIndex () == 4) 
                   { 
                       this.setInt = 4; 
                       this.display.setCurrent (baru CanvasDemo (ini)); 
                   } 
                   else if (this.list.getSelectedIndex () == 5) 
                   { 
                       this.setInt = 5; 
                       this.display.setCurrent (baru CanvasDemo (ini)); 
                   } 
                   else if (this.list.getSelectedIndex () == 6) 
                   { 
                       this.setInt = 6; 
                       this.display.setCurrent (baru CanvasDemo (ini)); 
                   } 
                   else if (this.list.getSelectedIndex () == 7) 
                   { 
                       this.setInt = 7; 
                       this.display.setCurrent (baru CanvasDemo (ini)); 
                   } 
                   else if (this.list.getSelectedIndex () == 8) 
                   { 
                       this.setInt = 8; 
                       this.display.setCurrent (baru CanvasDemo (ini)); 
                   } 
                   else if (this.list.getSelectedIndex () == 9) 
                   { 
                       this.setInt = 9; 
                       this.display.setCurrent (baru CanvasDemo (ini)); 
                   } 
                   else if (this.list.getSelectedIndex () == 10) 
                   { 
                       this.setInt = 10; 
                       this.display.setCurrent (baru CanvasDemo (ini)); 
                   } 
                   else if (this.list.getSelectedIndex () == 11) 
                   { 
                      this.setInt = 11; 
                      this.display.setCurrent (baru CanvasDemo (ini)); 
                   }                  
               } 
               this.cDemo.repaint (); 
           } 
       } 
      
       public int getInt () 
       { 
           kembali this.setInt; 
       } 
      
       Daftar publik getMainList () 
       { 
           kembali this.list; 
       } 
      
       public void setDisplayable (Disp dapat ditampilkan) 
       { 
           this.display.setCurrent (Disp); 
       } 
  } 
 
 
  / ************************* / 
  / *                CanvasDemo.java                     * / 
  / ************************* / 
 
  mengimpor javax.microedition.lcdui *;. 
  impor java.io.IOException; 
         
  / ** 
  * @ Author SKJ 
  * @ Version 1.0.0 
  * / 
 
  masyarakat kelas CanvasDemo memperluas kanvas mengimplementasikan CommandListener 
  { 
       private int Maxx; 
       private int maxY; 
       kembali Komando swasta; 
       swasta CanvasMIDlet induk; 
       swasta Daftar daftar; 
       swasta Gambar gambar; 
       swasta char [] ch; 
      
       publik CanvasDemo (CanvasMIDlet p) 
       { 
           super (); 
           this.maxX = super.getWidth (); 
           this.maxY = super.getHeight (); 
           this.parent = p; 
           this.initCommand (); 
           this.setList (); 
           this.createImage (); 
           this.initCharArray (); 
       } 
      
       public void commandAction (Command com, dapat ditampilkan Disp) 
       { 
           repaint (); 
           if (Disp == ini) 
           { 
               if (== com this.back) 
               { 
                   this.parent.setDisplayable (this.list); 
                   this.repaint (); 
               } 
           } 
       } 
       private void initCharArray () 
       { 
           this.ch = new char [12]; 
           this.ch [0] = 's'; 
           this.ch [1] = 'k'; 
           this.ch [2] = 'j'; 
           this.ch [3] = 'w'; 
           this.ch [4] = 'o'; 
           this.ch [5] = 'r'; 
           this.ch [6] = 'l'; 
           this.ch [7] = 'd'; 
           this.ch [8] = '.'  ; 
           this.ch [9] = 'c'; 
           this.ch [10] = 'o'; 
           this.ch [11] = 'm'; 
       } 
       private void createImage () 
       { 
           mencoba 
           { 
               this.image = javax.microedition.lcdui.Image.createImage ( 
                       "/ Res / starI.png"); 
           } 
           catch (IOException ioe) 
           { 
                  System.out.println ("Error"); 
           } 
       } 
       private void Setlist () 
       { 
           this.list = this.parent.getMainList (); 
       }     
       private void initCommand () 
       { 
           this.back = new Command ("Kembali", Command.BACK, 2); 
           this.addCommand (this.back); 
           this.setCommandListener (ini); 
       } 
       void dilindungi cat (Graphics g) 
       { 
           / / G.drawString (String.valueOf (this.maxX) + "" + String.valueOf (this.maxY), 20,50, Graphics.TOP | Graphics.LEFT); 
           / / G.setColor (255,0,0); 
           switch (this.parent.getInt ()) 
           { 
               case 0: 
               { 
                   g.setColor (255255255); 
                   g.fillRect (0,0, getWidth (), getHeight ()); 
                   g.setColor (0,0,255); 
                   g.drawArc (0,0,30,30,90,180); 
                   break; 
               } 
               kasus 1: 
               { 
                   g.setColor (255255255); 
                   g.fillRect (0,0, getWidth (), getHeight ()); 
                   g.setColor (0,0,255); 
                   g.drawRect (0,0,40,40); 
                   break; 
               } 
               kasus 2: 
               { 
                   g.setColor (255255255); 
                   g.fillRect (0,0, getWidth (), getHeight ()); 
                   g.setColor (0,0,255); 
                   g.drawRoundRect (0,0,30,30,10,10); 
                  break; 
               } 
               kasus 3: 
               { 
                   g.setColor (255255255); 
                   g.fillRect (0,0, getWidth (), getHeight ()); 
                   g.setColor (0,0,255); 
                   g.drawLine (10,10, this.maxX, this.maxY); 
                   break; 
               } 
               kasus 4: 
               { 
                   g.setColor (255255255); 
                   g.fillRect (0,0, getWidth (), getHeight ()); 
                   g.setColor (0,0,255); 
                   g.fillArc (0,0,40,40,45,180); 
                   break; 
               } 
               kasus 5: 
               { 
                   g.setColor (255255255); 
                   g.fillRect (0,0, getWidth (), getHeight ()); 
                   g.setColor (0,0,255); 
                   g.fillRect (0,0,30,30); 
                   break; 
               } 
               Kasus 6: 
               { 
                   g.setColor (255255255); 
                   g.fillRect (0,0, getWidth (), getHeight ()); 
                   g.setColor (0,0,255); 
                   g.fillRoundRect (0,0,30,30,10,10); 
                   break; 
               } 
               Kasus 7: 
               { 
                   
                   g.setColor (255255255); 
                   g.fillRect (0,0, getWidth (), getHeight ()); 
                   g.setColor (0,0,255); 
                   g.drawImage (this.image, 10,10, Graphics.TOP | 
                                   Graphics.LEFT); 
                   break; 
               } 
               Kasus 8: 
               { 
                   g.setColor (255255255); 
                   g.fillRect (0,0, getWidth (), getHeight ()); 
                   g.setColor (0,0,255); 
                   g.drawString ("Menggambar Contoh", 10,10, Graphics.TOP | 
                                   Graphics.LEFT); 
                   break; 
               } 
               kasus 9: 
               { 
                   g.setColor (255255255); 
                   g.fillRect (0,0, getWidth (), getHeight ()); 
                   g.setColor (0,0,255); 
                   arang ch = 'a'; 
                   g.drawChar (ch, 10,10, Graphics.TOP | Graphics.LEFT); 
                   break; 
               } 
               hal 10: 
               { 
                   g.setColor (255255255); 
                   g.fillRect (0,0, getWidth (), getHeight ()); 
                   g.setColor (0,0,255); 
                   g.drawChars (ch, 0, ch.length, 10,10, Graphics.TOP | 
                                   Graphics.LEFT); 
                   break; 
               } 
               hal 11: 
               { 
                   g.setColor (255255255); 
                  g.fillRect (0,0, getWidth (), getHeight ()); 
                   g.setColor (0,0,255); 
                   String substr = "Selamat Datang SKJWORLD.COM"; 
                   g.drawSubstring (substr, 0, subStr.length (), 10,10, 
                                   Graphics.TOP | Graphics.LEFT); 
                   break; 
               }              
           } 
       } 
  } 

Busur
drawChar
drawCharArray
kolor
 
drawSubString
fillArc
 
fillRect
 
drawImage
fillRoundRect
drawLine
 
drawRect
 
drawRoundRect
 

Emulator yang digunakan untuk mengambil gambar layar    :            Nokia 6650

2.      Menggunakan peristiwa penting   di kanvas
Contoh Acara Kunci
Canvas adalah kelas sub kelas dapat ditampilkan. Kanvas menyediakan metode untuk menekan peristiwa penting dan tindakan Game. Setiap kali kita bekerja dengan sembarang tombol pada papan tombol berikut tiga jenis metode bisa diaktifkan:
Ø   keyPressed
Ø   keyRepeated
Ø   keyReleased
  Ada sembilan jenis Aksi Game:
Ø   UP                                 (Nilai Konstan :            1)
Ø   BAWAH               (Nilai Konstan :            6)
Ø   KIRI                             (Nilai Konstan :            2)
Ø   KANAN                (Nilai Konstan :            5)
Ø   KEBAKARAN                              (Nilai Konstan :            8)
Ø   GAME_A                       (Nilai Konstan :            9)
Ø   GAME_B                       (Nilai Konstan :            10)
Ø   GAME_C                       (Nilai Konstan :            11)
Ø   GAME_D                       (Nilai Konstan :            12)
Ada 12 jenis kunci standar. Setiap peristiwa penting dan aksi permainan memiliki kode unik untuk operasi. Berikut ini adalah nilai-nilai lapangan untuk kunci standar:
Ø   KEY_NUM0                    (Nilai Konstan :            48)
Ø   KEY_NUM1                    (Nilai Konstan :            49)
Ø   KEY_NUM2                    (Nilai Konstan :            50)
Ø   KEY_NUM3                    (Nilai Konstan :            51)
Ø   KEY_NUM4                    (Nilai Konstan :            52)
Ø   KEY_NUM5                    (Nilai Konstan :            53)
Ø   KEY_NUM6                    (Nilai Konstan :            54)
Ø   KEY_NUM7                    (Nilai Konstan :            55)
Ø   KEY_NUM8                    (Nilai Konstan :            56)
Ø   KEY_NUM9                    (Nilai Konstan :            57)
Ø   KEY_POUND     (Nilai Konstan :            35)
Ø   KEY_STAR                    (Nilai Konstan :            42)
PRAKTEK TERBAIK
Untuk membuat kode Anda independen lokal menggunakan nilai konstan untuk kode kunci dan tindakan permainan bukan literal lapangan.


Contoh Kode: Canvas & Peristiwa Penting
 
  / ************************* / 
  / *                CanvasEventMIDlet.java            * / 
  / ************************* / 
 
  mengimpor javax.microedition.midlet *;. 
  mengimpor javax.microedition.lcdui *;. 
 
  / ** 
  * @ Author SKJ 
  * @ Version 1.0.0 
  * / 
 
  CanvasEventMIDlet public class MIDlet meluas 
  { 
       swasta Tampilan layar; 
       swasta EventDemo eventDemo; 
      
       publik CanvasEventMIDlet () 
       { 
           this.display = Display.getDisplay (ini); 
       } 
      
       public void startApp () 
       { 
                  this.display.setCurrent (baru EventDemo ()); 
       } 
       public void pauseApp () { 
       } 
       public void destroyApp (boolean unconditional) { 
       }    
       public void setDisplayable (Disp dapat ditampilkan) 
       { 
           this.display.setCurrent (Disp); 
       }          
  } 
  / ************************* / 
  / *                CanvasEventDemo.java             * / 
  / ************************* / 
mengimpor javax.microedition.lcdui *;.
/ **
  * @ Author SKJ
  * @ Version 1.0.0
  * /
masyarakat kelas EventDemo meluas kanvas
{
    swasta CanvasEventMIDlet induk;
    private int gameAction;
    private int kCode;
    publik EventDemo ()
    {
        super ();
        this.parent = new CanvasEventMIDlet ();
    }
    void dilindungi cat (Graphics g)
    {
         g.setColor (255255255);
        g.fillRect (0,0, this.getWidth (), this.getHeight ());
        g.setColor (255,0,0);
        mencoba
        {
            g.drawString ("Silahkan Tekan Setiap Key", 0,0, Graphics.TOP | Graphics.LEFT);
             beralih (this.gameAction)
            {
                kasus Canvas.RIGHT: / / keycode = 5
                {
                    g.setColor (255,0,0);
                    g.drawString ("   Kanan kunci ", 0,20, Graphics.TOP | Graphics.LEFT);
                    break;
                }
                kasus Canvas.LEFT: / / keycode = 2
                {
                    g.setColor (255,0,0);
                    g.drawString ("   Kiri kunci ", 0,20, Graphics.TOP | Graphics.LEFT);                     
                    break;
                }             
                kasus Canvas.UP: / / keycode = 1
                {
                    g.setColor (255,0,0);
                    g.drawString ("   Naik ", 0,40, Graphics.TOP | Graphics.LEFT);
                    break;
                }               
                kasus Canvas.DOWN: / / keycode = 6
                {
                    g.setColor (255,0,0);
                    g.drawString ("   Turun ", 0,40, Graphics.TOP | Graphics.LEFT);
                    break;
                }               
                kasus Canvas.FIRE: / / keycode = 8
                {
                    g.setColor (255,0,0);
                    g.drawString ("   Api kunci ", 0,40, Graphics.TOP | Graphics.LEFT);
                    break;
                }
            }
            switch (this.kCode)  
            {
                kasus Canvas.KEY_NUM0: / / keycode = 48
                {
                    g.setColor (255,0,0);
                    g.drawString ("   uanya kunci ", 0,40, Graphics.TOP | Graphics.LEFT);
                    break;
                }                   
                kasus Canvas.KEY_NUM1: / / keycode = 49
                {
                    g.setColor (255,0,0);
                     g.drawString ("   1 kunci ", 0,40, Graphics.TOP | Graphics.LEFT);
                    break;
                }               
                kasus Canvas.KEY_NUM2: / / keycode = 50
                {
                    g.setColor (255,0,0);
                     g.drawString ("   2nd kunci ", 0,40, Graphics.TOP | Graphics.LEFT);
                    break;
                }               
                kasus Canvas.KEY_NUM3: / / keycode = 51
                {
                    g.setColor (255,0,0);
                     g.drawString ("   3 kunci ", 0,40, Graphics.TOP | Graphics.LEFT);
                    break;
                }               
                kasus Canvas.KEY_NUM4: / / keycode = 52
                {
                    g.setColor (255,0,0);
                     g.drawString ("   4 kunci ", 0,40, Graphics.TOP | Graphics.LEFT);
                    break;
                }              
                kasus Canvas.KEY_NUM5: / / keycode = 53
                {
                    g.setColor (255,0,0);
                    g.drawString ("   5 kunci ", 0,40, Graphics.TOP | Graphics.LEFT);
                    break;
                }               
                kasus Canvas.KEY_NUM6: / / keycode = 54
                {
                    g.setColor (255,0,0);
                    g.drawString ("   6 kunci ", 0,40, Graphics.TOP | Graphics.LEFT);
                    break;
                }
                kasus Canvas.KEY_NUM7: / / keycode = 55
                {
                    g.setColor (255,0,0);
                     g.drawString ("   7 kunci ", 0,40, Graphics.TOP | Graphics.LEFT);
                    break;
                }                                
                kasus Canvas.KEY_NUM8: / / keycode = 56
                {
                    g.setColor (255,0,0);
                    g.drawString ("   8 kunci ", 0,40, Graphics.TOP | Graphics.LEFT);
                    break;
                }
                kasus Canvas.KEY_NUM9: / / keycode = 57
                {
                    g.setColor (255,0,0);
                    g.drawString ("   9 kunci ", 0,40, Graphics.TOP | Graphics.LEFT);
                    break;
                }
                kasus Canvas.KEY_POUND: / / keycode = 35
                {
                    g.setColor (255,0,0);
                     g.drawString ("   Tombol # ", 0,40, Graphics.TOP | Graphics.LEFT);
                    break;
                }
                kasus Canvas.KEY_STAR: / / keycode = 42
                {
                    g.setColor (255,0,0);
                     g.drawString ("   * Kunci ", 0,40, Graphics.TOP | Graphics.LEFT);
                    break;
                }
            }
        }
        catch (Exception e)
        {
            System.out.println ("Error");
        }
               
    }    
    public void keyPressed (int keyCode)
    {
        this.gameAction = getGameAction (keyCode);
        this.kCode = keyCode;
       
        this.repaint ();
    }
    public void keyRepeated (int keyCode)
{
     }        
}
Screen Shot di Mulai

Emulator yang digunakan untuk mengambil gambar layar    :            Motorola_i85s

Bekerja dengan font
Platform MIDP 1.0 telah mencoba untuk meningkatkan daya presentasi yang tersedia dengan aplikasi dengan bantuan dari kelas Font. Kelas Font memungkinkan sebuah aplikasi untuk bekerja dengan font yang berbeda tersedia dengan sistem. Font tidak dapat diciptakan oleh aplikasi itu sendiri. Aplikasi ini hanya dapat permintaan untuk font berdasarkan atribut font dan sistem akan berusaha untuk menyediakan font yang sesuai dengan atribut diminta semaksimal mungkin.

Berikut ini adalah atribut font dan bidang yang terkait dengan mereka:
  • Gaya
    • STYLE_BOLD public int static final
    • STYLE_ITALIC public int static final
    • STYLE_PLAIN public int static final
    • int akhir public static STYLE_UNDERLINED

  • Ukuran
    • SIZE_LARGE public int static final
    • SIZE_MEDIUM public int static final
    • SIZE_SMALL public int static final

  • Wajah
    • FACE_MONOSPACE public int static final
    • public int akhir statis FACE_PROPORTIONAL
    • FACE_SYSTEM public int static final

                                               
Font Ukuran - Besar                                                                                  Ukuran font - Medium
Font Style - Underline                                                                           Font Style - Plain
Font Face - Sistem                                                                               Font Face - Sistem      
Kode Contoh: kanvas & Font
  / ************************* / 
  / *                FontMIDlet.java                         * / 
  / ************************* / 
  mengimpor javax.microedition.midlet *;. 
  mengimpor javax.microedition.lcdui *;. 
  / ** 
  * @ Author SKJ 
  * @ Version 1.0.0 
  * / 
 
  FontMIDlet kelas publik meluas javax.microedition.midlet.MIDlet 
  { 
       swasta Tampilan layar; 
       swasta FontCanvas fCanvas; 
 
       public void startApp () 
       { 
           this.fCanvas = new FontCanvas (ini); 
           this.display = Display.getDisplay (ini); 
           this.display.setCurrent (this.fCanvas); 
       } 
 
       public void pauseApp () { 
       } 
      
       public void destroyApp (boolean unconditional) { 
       } 
      
       public void setDisplayable (Disp dapat ditampilkan) 
       { 
           this.display.setCurrent (Disp); 
       }      
  } 
  / ************************* / 
  / *                FontCanvas.java                       * / 
  / ************************* / 
  mengimpor javax.microedition.lcdui *;. 
 
  / * 
  * @ Author SKJ 
  * @ Version 1.0.0 
  * / 
  FontCanvas kelas publik meluas kanvas CommandListener alat 
  { 
       swasta FontMIDlet induk; 
       swasta Font huruf; 
      
       / / Mendeklarasikan Command 
       wajah Command swasta; 
       swasta Command gaya; 
       swasta Command ukuran; 
       kembali Komando swasta; 
       / / Mendeklarasikan daftar 
       Daftar faceList swasta; 
       Daftar styleList swasta; 
       Daftar sizeList swasta; 
      
       private int faceInt; 
       private int styleInt; 
       private int sizeInt; 
      
       private int displayInt; 
      
       publik FontCanvas (FontMIDlet induk) 
       { 
           super (); 
           this.parent = induk; 
          
           this.initBackCommand (); 
 
           / / Initilizing Command 
           this.initFaceCommand (); 
           this.initFaceList (); 
          
          
           this.initStyleCommand (); 
           this.initStyleList (); 
          
           this.initSizeCommand (); 
           this.initSizeList (); 
          
           this.initFont (); 
           this.faceInt = Font.FACE_MONOSPACE; 
           this.styleInt = Font.STYLE_PLAIN; 
           this.sizeInt = Font.SIZE_LARGE; 
          
           this.displayInt = 0;          
       } 
      
       private void initBackCommand () 
       { 
           this.back = new Command ("Kembali", Command.BACK, 2); 
           this.addCommand (this.back); 
           this.setCommandListener (ini); 
       } 
      
       private void initFaceCommand () 
       { 
           this.face = new Command ("Face", Command.ITEM, 1); 
           this.addCommand (this.face); 
           this.setCommandListener (ini); 
       } 
      
       private void initStyleCommand () 
       { 
           this.style = new Command ("Style", Command.ITEM, 2); 
           this.addCommand (this.style); 
           this.setCommandListener (ini); 
       } 
      
       private void initSizeCommand () 
       { 
           this.size = new Command ("Ukuran", Command.ITEM, 1); 
           this.addCommand (this.size); 
           this.setCommandListener (ini); 
       } 
      
       private void initFont () 
       { 
           this.font = Font.getFont (this.faceInt, this.styleInt, 
           this.sizeInt); 
       } 
      
       void dilindungi cat (Graphics g) 
       { 
           g.setColor (255255255); 
           g.fillRect (0,0, getWidth (), getHeight ()); 
           g.setColor (0,0,255); 
           g.setFont ( 
           Font.getFont (this.faceInt, this.styleInt, this.sizeInt)); 
           g.drawString ("CONTOH UJI", 10,10, Graphics.TOP | Graphics.LEFT    
           ); 
       } 
      
       public void commandAction (Command comm, dapat ditampilkan Disp) 
       { 
           if (Disp == ini) 
           { 
               if (comm == this.face) 
               { 
                   this.displayInt = 1; 
                   this.parent.setDisplayable (this.faceList); 
               } 
              
               else if (comm == this.style) 
               { 
                   this.displayInt = 2; 
                   this.parent.setDisplayable (this.styleList); 
               } 
              
               else if (comm == this.size) 
               { 
                   this.displayInt = 3; 
                   this.parent.setDisplayable (this.sizeList); 
               } 
           } 
          
           if (comm == this.back) 
           { 
               if (this.displayInt == 1) 
               { 
                   this.parent.setDisplayable (this.faceList);     
               } 
              
               lain jika (this.displayInt == 2) 
               { 
                   this.parent.setDisplayable (this.styleList);     
               } 
              
               if (this.displayInt == 3) 
               { 
                   this.parent.setDisplayable (this.sizeList);     
               } 
           } 
          
           / / Ini adalah untuk tampilan daftar Wajah 
           if (== Disp this.faceList) 
           { 
               if (comm == List.SELECT_COMMAND) 
               { 
                   if (this.faceList.getSelectedIndex () == 0) 
                   { 
                       this.faceInt = Font.FACE_MONOSPACE; 
                       this.parent.setDisplayable (ini); 
                   } 
                  
                   else if (this.faceList.getSelectedIndex () == 1) 
                   { 
                       this.faceInt = Font.FACE_PROPORTIONAL; 
                       this.parent.setDisplayable (ini); 
                   } 
                  
                   else if (this.faceList.getSelectedIndex () == 2) 
                   { 
                       this.faceInt = Font.FACE_SYSTEM; 
                       this.parent.setDisplayable (ini); 
                   } 
               } 
           } 
          
           / / Ini jika untuk menampilkan daftar Ukuran 
           if (== Disp this.sizeList) 
           { 
               if (comm == List.SELECT_COMMAND) 
               { 
                   if (this.sizeList.getSelectedIndex () == 0) 
                   { 
                       this.sizeInt = Font.SIZE_LARGE; 
                       this.parent.setDisplayable (ini); 
                   } 
                  
                   else if (this.sizeList.getSelectedIndex () == 1) 
                   { 
                       this.sizeInt = Font.SIZE_MEDIUM; 
                       this.parent.setDisplayable (ini); 
                   } 
                  
                   else if (this.sizeList.getSelectedIndex () == 2) 
                   { 
                       this.sizeInt = Font.SIZE_SMALL; 
                       this.parent.setDisplayable (ini); 
                   } 
               } 
           } 
          
           / / Ini adalah untuk daftar Gaya 
           if (== Disp this.styleList) 
           { 
               if (comm == List.SELECT_COMMAND) 
               { 
                   if (this.styleList.getSelectedIndex () == 0) 
                   { 
                       this.styleInt = Font.STYLE_BOLD + 
                       Font.STYLE_UNDERLINED + Font.STYLE_ITALIC; 
                       this.parent.setDisplayable (ini); 
                   } 
                  
                   else if (this.styleList.getSelectedIndex () == 1) 
                   { 
                       this.styleInt = Font.STYLE_BOLD + Font.STYLE_ITALIC; 
                       this.parent.setDisplayable (ini); 
                   } 
                  
                   else if (this.styleList.getSelectedIndex () == 2) 
                   { 
                       this.styleInt = Font.STYLE_BOLD; 
                       this.parent.setDisplayable (ini); 
                   } 
                  
                   else if (this.styleList.getSelectedIndex () == 3) 
                   { 
                       this.styleInt = Font.STYLE_ITALIC + 
                       Font.STYLE_UNDERLINED; 
                       this.parent.setDisplayable (ini); 
                   } 
                  
                   else if (this.styleList.getSelectedIndex () == 4) 
                   { 
                       this.styleInt = Font.STYLE_ITALIC; 
                       this.parent.setDisplayable (ini); 
                   } 
                  
                  else if (this.styleList.getSelectedIndex () == 5) 
                   { 
                       this.styleInt = Font.STYLE_UNDERLINED; 
                       this.parent.setDisplayable (ini); 
                   } 
                  
                   else if (this.styleList.getSelectedIndex () == 6) 
                   { 
                       this.styleInt = Font.STYLE_PLAIN; 
                       this.parent.setDisplayable (ini); 
                   } 
                  
                   else if (this.styleList.getSelectedIndex () == 7) 
                   { 
                       this.styleInt = Font.STYLE_BOLD + 
     Font.STYLE_UNDERLINED; 
                       this.parent.setDisplayable (ini); 
                   } 
               } 
           } 
           repaint (); 
       } 
      
       private void initFaceList () 
       { 
           Daftar this.faceList = baru ("FontFaceList", List.IMPLICIT); 
           this.faceList.append ("01." + "" + "Font-monospace", null); 
           this.faceList.append ("02." + "" + "Font-Propertional", null); 
           this.faceList.append ("03." + "" + "Font-System", null); 
           this.faceList.setCommandListener (ini); 
       } 
      
       private void initStyleList () 
       { 
           Daftar this.styleList = baru ("FontStyleList", List.IMPLICIT); 
           this.styleList.append ("01." + "" + "Font-B + I + U", null); 
           this.styleList.append ("02." + "" + "Font-B + I", null); 
           this.styleList.append (+ "" + "Font-Bold", null "03."); 
           this.styleList.append ("04." + "" + "Font-I + U", null); 
           this.styleList.append ("05." + "" + "Font-Miring", null); 
           this.styleList.append (+ "" + "Font-Underline", null "06."); 
           this.styleList.append ("07." + "" + "Font-Plain", null); 
           this.styleList.append ("08." + "" + "Font-B + U", null); 
           this.styleList.setCommandListener (ini); 
       } 
      
       private void initSizeList () 
       { 
           Daftar this.sizeList = baru ("FontSizeList", List.IMPLICIT); 
           this.sizeList.append ("01." + "" + "Font-besar", null); 
           this.sizeList.append ("02." + "" + "Font-Sedang", null); 
           this.sizeList.append (+ "" + "Font-Kecil", null "03."); 
           this.sizeList.setCommandListener (ini); 
       } 
  } 

Bold jenis font
Bold Italic-jenis font
Bold-Italic Underline-jenis font
 
Bold Underline-jenis font
Miring jenis font
Italic Underline-jenis font
 
Plain jenis font
 
Garis bawahi jenis font
 
Besar jenis font
 
Sedang jenis font
 
Kecil jenis font
 
Monospace jenis font
Proporsional jenis font
 
Sistem jenis font
 
Emulator yang digunakan untuk mengambil gambar layar    :            Nokia 6650


Emulator yang digunakan untuk mengambil gambar layar    :            Nokia Series 40

Kembali | Selanjutnya

Tidak ada komentar:

Posting Komentar