หน้าแรก
 การบ้าน
  C/C++ new
  Java new
 Sourcecode.TV
  Android
  Blackberry
  C/C++
  Java
  Linux
  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
 บริการจากเรา
  เปิดท้าย... ขายโค้ด
  DoodeeHosting
  รับออกแบบ พัฒนาเว็บไซต์
  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
  สนใจคะ ติดต่...
2012-11-12 11:07:46
  รับทำโปรเจ็...
2012-10-29 03:10:46
  sukit_te34@hotmail.com...
2012-10-29 03:09:36
  Webboard comment
  ระบบจองตั...
2017-11-18 15:42:48
  โปรแกรมจอ...
2017-11-18 15:40:29
  ผมลอง gotoxy แ...
2017-08-28 11:45:52
  ลองสร้างต...
2017-08-27 20:09:01
  #define GLUT_DISABLE_ATEXIT...
2017-08-27 12:53:17
  ผมมีคลิปส...
2017-08-27 10:50:02
  รับ สอน matlab ...
2017-06-03 16:27:23
  เฉพาะทางข...
2017-05-25 16:18:08
  โห เครื่อ...
2017-05-25 16:12:47
  ถ้าเขียน ph...
2017-04-20 01:04:20
  Homework comment
  โค้ดตัวอย่...
2017-11-26 14:50:05
  คำนวณค่าน้...
2017-11-20 23:15:26
  ขอบคุณมากค...
2017-08-16 18:27:25
  ทำเอง งง เอ...
2017-04-18 18:40:46
  ทำเอง งง เอ...
2017-04-18 18:37:54
  ประเด็นแรก...
2017-04-18 17:43:33
  อยากได้ flowchar...
2017-04-18 16:25:29
  kungking คำถามคื...
2017-03-18 23:28:36
  จงเขียนโปร...
2017-03-06 10:56:25
  ก็โค้ดทำงา...
2016-09-06 01:00:12
  Article comment
  มีcode ของ VB ไห...
2017-09-28 16:50:02
  น่าจะได้คร...
2017-07-11 09:59:35
  สามารถใช้ต...
2017-07-05 10:12:35
  ครับ คุณ "ติ...
2016-06-18 15:21:09
  vs2008 c# ครับ ขอ...
2016-06-17 14:39:30
  ผมใช้ vs c# ทำ...
2016-06-17 14:37:44
  ต้องวิเครา...
2016-03-12 23:36:05
  ผมส่งข้อคว...
2016-03-12 18:25:42
  โปรแกรม Terminal...
2016-02-16 11:02:01
  โปรแกรม Terminal...
2016-02-16 05:58:21
  9Mcode comment
  อยากได้...
2014-02-21 08:52:19

Link Exchange

อัตราค่าโฆษณา
Statistics of Sourcecode in Thailand
 
 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

สายต่อจอ สำหรับเครื่อง macbook pro 2016 (usb-c to HDMI)
สายต่อจอ สำหรับเครื่อง macbook pro 2016 (usb-c to HDMI) ความละเอียดระดับ 4K
หัวแปลง Mini DisplayPort to HDMI Adapter หัวแปลง Mini DisplayPort to HDMI Adapter สำหรับเครื่อง macbook air/pro, mac mini
หัวแปลง Mini DisplayPort to HDMI Adapter สำหรับเครื่อง macbook air/pro, mac mini
สายต่อหูฟัง และชาร์จไฟ สำหรับ iPhone 7 และ 7 Plus
สายต่อหูฟัง และชาร์จไฟ สำหรับ iPhone 7 และ 7 Plus
หัวแปลงจาก USB-C Type ไปเป็น USB 3.1 สำหรับ MacBook
หัวแปลงจาก USB-C Type ไปเป็น USB 3.1 สำหรับ MacBook
ไขควงสำหรับเครื่อง Macbook Air/Pro
ไขควง สำหรับแกะเครื่อง Macbook Air/Pro (300บาท)
HDMI เข้า 3 ออก  1 มีรีโมท
HDMI เข้า 3 ออก 1 มีรีโมท (350บาท)
คลิปสอนเขียนโปรแกรม
เรียนเขียนโปรแกรมดอทเน็ต
เรียนเขียนโปรแกรมแอนดรอยด์
เรียนเขียนโปรแกรมเบล็คเบอร์รี่
เรียนเขียนโปรแกรมซี ซีพลัสพลัส
เรียนเขียนโปรแกรมจาวา
เรียนการใช้งานลินุกส์
เรียนการเขียนโปรแกรมวินโดว์โฟน
เรียนการเขียนโปรแกรมพีเฮชพี มายเอสคิวเอล
9M Blog บอกเล่าเรื่องราว การเขียนโปรแกรมของ นายเอ็ม
บริการ ถ่ายภาพรับปริญญา
OrmSin.com: ขายหนังสืองานฝีมือไทย-ญี่ปุ่น-จีน (country crafts)
อัตราค่าโฆษณา
 
Tutorial
eVB Tutorial
ASP.NET Webmatrix Tutorial
J2ME Tutorial
C++  Tutorial
Java  Tutorial
PHP Tutorial
ASP Tutorial
 
แบบสำรวจ
Freelance รับพัฒนาโปรแกรม

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

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