หน้าแรก
 การบ้าน
  C/C++ new
  Java new
  Windows Phone
  แจ้งเรื่องที่ต้องการ
 บทความ
  .NET
  Android
  Blackberry
  C++Builder
  Delphi
  Java
  Mobile
  Open Source
  Pocket PC
  Visual Basic
  Web
  Windows Phone
  Others
 แบบเรียนฟรี
  ASP
  ASP.NET Webmatrix
  C++
  eVB
  J2ME
  Java
  PHP
 ซอร์สโค้ด
  Android
  ASP
  C++
  VC++
  CGI-Perl
  Delphi
  Java
  jQuery
  PHP
  Visual Basic
  .NET
 บริการจากเรา
  เปิดท้าย... ขายโค้ด
  Freeware
  อัตราค่าโฆษณา
  รายชื่อลูกค้า
  สถิติผู้เข้าเว็บ
 ดาว์นโหลด
 ค้นหาข้อมูล
 กระดานสนทนา
  .NET
  C/C++
  Delphi
  Java
  Palm/PocketPC
  Visual Basic
  Web
  อื่นๆ
 กระดานงาน
 ลิงค์เว็บ
 เกี่ยวกับผม
 อัตราค่าโฆษณา
Social Network

Facebook  Twitter  YouTube
 New Article
 Webboard
 Freelanceboard
Freeware
โปรแกรมเบอร์ดี (BerDee)
โปรแกรมเบอร์ดี (Android)
เกมส์เป่ายิ้งฉุบ
เกมส์เป่ายิ้งฉุบ(Android)
WebcamMonitor
WebcamMonitor(Windows)
scSendMail
scSendMail(Windows)
MSN Caption
MSN Caption(Windows)
  Freelance comment
  ติดต่อสอบถามมาได้ตลอดนะ...
2015-07-29 13:35:58
  ถ้าผมต้องการเว็บที่พัฒน...
2015-01-18 15:33:54
  ถ้าผมต้องการเว็บที่พัฒน...
2015-01-18 15:32:51
  ติดต่อสอบถามเข้ามาได้นะ...
2014-01-06 12:47:38
  ถ้ายังหาคนสอนไม่ได้ ก็ลอ...
2013-07-06 01:04:37
  สนใจส่งขอบเขตมาคุยราคาก...
2013-03-24 18:54:20
  ถ้ายังไม่มีคนรับงานติดต...
2012-12-16 19:18:14
  สนใจคะ ติดต่อ 0905076277...
2012-11-12 11:07:46
  รับทำโปรเจ็คนักศึกษาหรื...
2012-10-29 03:10:46
  sukit_te34@hotmail.com...
2012-10-29 03:09:36
  Webboard comment
  ฉันอยากเจอเธอ
ฉันอยู่ใ...

2024-04-26 23:45:32
  สวัสดี คุณต้องการหาเงินจ...
2024-04-26 22:13:52
  เขียนโปรแกรมภาษาจาวา
1.โ...

2023-09-12 11:40:28
  ต้องลอง debug ดูเองครับ
ไล่...

2023-06-08 18:03:06
  ร้านค้าแห่งหนึ่ง จะต้องน...
2021-09-21 08:47:08
  จงเขียนโปรแกรมดำเนินการ...
2021-05-07 15:06:11
  จงเขียนโปรแกรมสำหรับคำน...
2021-03-09 14:21:45
  ขอดู...
2021-01-04 23:56:45
  ขอโค้ดเพื่อทำการเรียนกา...
2020-12-09 23:02:09
  แล้ว ?...
2020-12-09 10:56:34
  Homework comment
  เขียนโปรแกรมเพื่อรับค่า...
2022-02-24 10:45:17
  จากโค้ดนี้อะครับ พอดีลอง...
2021-03-22 01:22:39
  จากโค้ดนี้อะครับ พอดีลอง...
2021-03-22 01:22:39
  โจทย์การบ้าน c++ เขียนรูปแ...
2020-04-06 11:01:33
  แบบนี้ขอเป็น ภาษา php หน่อย...
2019-09-18 14:36:34
  ผมไม่อยากให้คุณได้คะแนน...
2019-04-27 01:29:07
  อาจารย์เขาบอกแนวข้อสอบม...
2019-04-27 00:44:29
  ขอสอบถามการเขียน c++ ครับ เ...
2018-04-02 12:19:21
  โค้ดตัวอย่างศึกษาให้เข้...
2017-11-26 14:50:05
  คำนวณค่าน้ำโดยรับค่ามิเ...
2017-11-20 23:15:26
  Article comment
  เท่าที่อ่าน error คือพื้นที่...
2022-03-23 13:56:48
  เรียน สอบถามปัญหา กับ อ.คร...
2022-01-24 17:39:49
  ต้องการ ให้เขียน โปรแกรม ...
2019-12-09 11:39:58
  รับเขียน arx จาก vc++ 2017 ล็อคโปร...
2019-09-19 09:48:09
  ทำการ register ไฟล์ที่ชื่อ mswinsck.oc...
2019-09-17 14:05:56
  ใน vb 6 ไม่มี component winsock เลยค่ะ ส...
2019-09-03 10:31:02
  รบกวนขอสอบถามหน่อยนะครั...
2019-03-04 05:31:04
  สามารถนำตัวหนังสือจากภา...
2018-12-25 08:54:32
  มีcode ของ VB ไหมค่ะ ถ้ามีรบกว...
2017-09-28 16:50:02
  น่าจะได้ครับ ไม่เคยลอง
...

2017-07-11 09:59:35
  9Mcode comment

Link Exchange

อัตราค่าโฆษณา
 
 J2ME (Java Micro Edition) Tutorial  

- - - - - - - - - - - - - - ผู้ให้การสนับสนุน- - - - - - - - - - - - - -

 J2ME (Java Micro Edition)
 
 

บทที่ 6 ภาคปฏิบัติ

 

บทที่ 6 ภาคปฏิบัติ

ตัวอย่างที่ 1 RecordMIDlet

RecordMIDlet.java

Download Code Download Code
/* * RecordMIDlet.java * * Created on 13 ??????? 2546, 16:38 ?. */
      
        import javax.microedition.midlet.*;
        import javax.microedition.lcdui.*;
      /**
        * An example MIDlet with simple "Hello" text and an Exit command.
        * Refer to the startApp, pauseApp, and destroyApp
        * methods so see how each handles the requested transition.
        *
        * @author sup98
        * @version
        */
        public class RecordMIDlet extends MIDlet{
        
        private Preferences mPreferences;
	  private Form mForm;
        private TextField mUserField, mPasswordField;
        
                
        
        public void startApp() {
          //Try to load the user and password from a recordstore
          mPreferences = Preferences.getInstance();
	    
	    if(mForm == null){
	      mForm = new Form("Login");	
		mUserField = new TextField("Name", mPreferences.getUser(), 32, 0);
		mPasswordField = new TextField("Password", mPreferences.getPassword(), 
		        32,TextField.PASSWORD);
		mForm.append(mUserField);
		mForm.append(mPasswordField);

		mForm.addCommand(new Command("Exit", Command.EXIT, 0));
		mForm.setCommandListener(new CommandListener(){
		  public void commandAction(Command c,Displayable s){
		    if(c.getCommandType() == Command.EXIT){
			destroyApp(true);
			notifyDestroyed();
		    }
	
		  }
		}
		);
	    }
	    Display.getDisplay(this).setCurrent(mForm);
        }
        
        /**
        * Pause is a no-op since there are no background activities or
        * record stores that need to be closed.
        */
        public void pauseApp() {
        }
        
        /**
        * Destroy must cleanup everything not handled by the garbage collector.
        * In this case there is nothing to cleanup.
        */
        public void destroyApp(boolean unconditional) {
	    //Save the user name and password
	    mPreferences.setUser(mUserField.getString());
	    mPreferences.setPassword(mPasswordField.getString());
	    mPreferences.store();
        }        
        
        
        }

Preferences.java

Download Code Download Code
/* * Preferences.java * * Created on 13 ??????? 2546, 16:38 ?. */
      
        import javax.microedition.rms.*;
      /**
        * An example MIDlet with simple "Hello" text and an Exit command.
        * Refer to the startApp, pauseApp, and destroyApp
        * methods so see how each handles the requested transition.
        *
        * @author sup98
        * @version
        */
        public class Preferences{   
	    private static Preferences sInstance;
	    private String mUser, mPassword;
        
        public static Preferences getInstance(){
	    if(sInstance == null)
		sInstance = new Preferences("","");
		
		RecordStore rs = null;
		try{
		  rs = RecordStore.openRecordStore("Preferences", true);
		}
                catch(RecordStoreException rse){
		  return null;
		}
	    String user, password;
	    user = password = "";
	    try{
		byte[] userBytes = rs.getRecord(1);
		byte[] passwordBytes = rs.getRecord(2);
		user = new String(userBytes);
		password = new String(passwordBytes);
	    }
	    catch(RecordStoreException rse){}		
	    catch(NullPointerException npe){}

	    try{ rs.closeRecordStore();}
	    catch(RecordStoreException rse){}

	    sInstance.setUser(user);
	    sInstance.setPassword(password);
	    
	    return sInstance;
	    
        }
	  

        private Preferences(String user, String password){
 	    setUser(user);
	    setPassword(password);
        }
        
        public String getUser(){ return mUser;}
        public String getPassword(){ return mPassword;}

        public void setUser(String user){ mUser = user;}
        public void setPassword(String password){ mPassword = password;}
        

        public void store(){
	    RecordStore rs = null;
	    try{
		rs = RecordStore.openRecordStore("Preferences", false);
	    }catch(RecordStoreException rse){ return;}

	    try{
		byte[] userBytes = mUser.getBytes();
		byte[] passwordBytes = mPassword.getBytes();
		int n = rs.getNumRecords();
		if(n == 0){
		  rs.addRecord(userBytes, 0, userBytes.length);
		  rs.addRecord(passwordBytes , 0, passwordBytes .length); 
		}
		else{
		  rs.setRecord(1, userBytes, 0, userBytes.length);			
		  rs.setRecord(2, passwordBytes, 0, passwordBytes.length);			
		}
	    }						
	    catch(RecordStoreException rse){}

	    try{rs.closeRecordStore();}
	    catch(RecordStoreException rse){};

        }        
        
        
        }

ผลการ Run

RecordStore MIDlet
รูปที่ 50 แสดงหน้าต่าง Emulator ที่ run MIDlet ที่เขียนขึ้น

อธิบาย: MIDlet ตัวอย่างนี้ แสดงการเก็บข้อมูล ที่คุณได้ทำการกรอกเอาไว้ เครื่องครั้งก่อน เมื่อคุณทำการเปิด MIDlet ขึ้นมาอีกครั้ง ก็จะมีการดึงข้อมูลที่อยู่ใน Record Store ขึ้นมาแสดงให้คุณได้ทราบ


ตัวอย่างที่ 2 Hotel Demo

HotelDemo.java

Download Code Download Code
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
import javax.microedition.rms.*;
import java.io.*;


public class HotelDemo extends MIDlet implements CommandListener {

    private Command exitCommand, backCommand, nextCommand, saveCommand;
    private Display display;    // The display for this MIDlet
    private List menu;
    private Form fr1;
    private TextField tf1, tf2, tf3, tf4;
    private RecordEnumeration enum;
    private ByteArrayOutputStream bout = new ByteArrayOutputStream();
    private DataOutputStream dout = new DataOutputStream(bout);
    private RecordStore rs;
    private byte [] data = null;
    private ByteArrayInputStream bin;
    private DataInputStream din = null;
   
    public HotelDemo() {
        display = Display.getDisplay(this);
        exitCommand = new Command("Exit", Command.SCREEN, 1);
        nextCommand = new Command("Next", Command.BACK, 2);
        saveCommand = new Command("Save", Command.BACK, 2);
        backCommand = new Command("Back", Command.BACK, 2);
    }



    public void startApp() {
        menu = new List("Hotel List", Choice.IMPLICIT);
        menu.append("Add", null);
        menu.append("Show All", null);
        menu.addCommand(exitCommand);
        menu.setCommandListener(this);     
        display.setCurrent(menu);

        fr1 = new Form("Hotel");
        fr1.append("Name");
        tf1 = new TextField("", "", 15, TextField.ANY);
        fr1.append(tf1);
        fr1.append("Phone");
        tf2 = new TextField("", "", 15, TextField.PHONENUMBER);
        fr1.append(tf2);
        fr1.append("Zone");
        tf3 = new TextField("", "", 10, TextField.ANY);
        fr1.append(tf3);
        fr1.append("Price");
        tf4 = new TextField("", "", 10, TextField.NUMERIC);
        fr1.append(tf4);
        fr1.addCommand(backCommand);
        fr1.setCommandListener(this);
        
        openRecord();
    }
    

    public void resetScreen() {
        setScreen("", "", "", "");
    }
    
    public void setScreen(String name, String tel, String zone, String price) {
        tf1.setString(name);
        tf2.setString(tel);
        tf3.setString(zone);
        tf4.setString(price);
    }

    public void openRecord() {
        try {
            rs = RecordStore.openRecordStore("Hotel", true);            
        } catch (RecordStoreException ex) {
        }
    }
    

    public void addRecord(String name, String phone, String zone, int price) {
        try {
            dout.writeUTF(name);
            dout.writeUTF(phone);
            dout.writeUTF(zone);
            dout.writeInt(price);
            dout.flush();
        }catch (IOException ex) {
        }

        byte[] data = bout.toByteArray();
        try {
            rs.addRecord(data, 0, data.length);
        } catch (RecordStoreFullException ex) {
        } catch (RecordStoreException ex) {
        }       
    }
    
    public void pauseApp() {
    }


    public void destroyApp(boolean unconditional) {
        try {
            rs.closeRecordStore();            
        } catch (RecordStoreException ex) {
        }  
    }

    public void storeData() {
        String name = tf1.getString();
        String tel = tf2.getString();
        String zone = tf3.getString();
        int price = Integer.parseInt(tf4.getString());
        addRecord(name, tel, zone, price);
    }
    

    public void nextRecord() {
        try {
             
            if (enum.hasNextElement()) { 
                int id = enum.nextRecordId();
                int size = rs.getRecordSize(id);
                                
                if (data == null || data.length < size) {
                    data = new byte[size + 20];
                    bin = new ByteArrayInputStream(data);
                    din = new DataInputStream(bin);
                }
                rs.getRecord(id, data, 0);
                din.reset();
                String name = din.readUTF();
                String tel = din.readUTF();
                String zone = din.readUTF();
                int price = din.readInt();
                setScreen(name, tel, zone, price + "");
            }
        }catch (Exception ex) {   
	}
        
    }
    public void commandAction(Command c, Displayable s) {
        if (c == exitCommand) {
            destroyApp(false);
            notifyDestroyed();
        } else if (c == backCommand) {
            fr1.removeCommand(nextCommand);
            fr1.removeCommand(saveCommand);
           display.setCurrent(menu);
        } else if (c == saveCommand) {
            storeData();
            fr1.removeCommand(saveCommand);
            display.setCurrent(menu);
        } else if (c == nextCommand) {
            nextRecord();
          } else if (c == List.SELECT_COMMAND) {
             switch(((List) s).getSelectedIndex()) {
                case 0 : 
                    fr1.addCommand(saveCommand);
                    display.setCurrent(fr1);
                    resetScreen();
                    break;
                case 1 : 
        					
					
 

BACK

คลิปสอนเขียนโปรแกรม
เรียนเขียนโปรแกรมดอทเน็ต
เรียนเขียนโปรแกรมแอนดรอยด์
เรียนเขียนโปรแกรมเบล็คเบอร์รี่
เรียนเขียนโปรแกรมซี ซีพลัสพลัส
เรียนเขียนโปรแกรมจาวา
เรียนการใช้งานลินุกส์
เรียนการเขียนโปรแกรมวินโดว์โฟน
เรียนการเขียนโปรแกรมพีเฮชพี มายเอสคิวเอล
อัตราค่าโฆษณา
 
Tutorial
eVB Tutorial
ASP.NET Webmatrix Tutorial
J2ME Tutorial
C++  Tutorial
Java  Tutorial
PHP Tutorial
ASP Tutorial
 
แบบสำรวจ

Home - Article - Tutorial - Sourcecode - Dev Handbook - Search - WebBoard - Links - About Us

สงวนลิขสิทธิ์ ห้ามคัดลอก ทำซ้ำ แก้ไข ดัดแปลง ไม่ว่าในรูปแบบใด โดยไม่ได้รับอนุญาตเป็นลายลักษณ์อักษร
เลขทะเบียนพาณิชย์อิเล็กทรอนิกส์จากกระทรวงพาณิชย์: 7100503002000
Copyright 2001 SourceCode.in.th