˹á
 úҹ
  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
  Ҽͧ纷ѲҴ HTML5 ...
2015-01-18 15:33:54
  Ҽͧ纷ѲҴ HTML5 ...
2015-01-18 15:32:51
  ԴͺФѺ
ҹ...

2014-01-06 12:47:38
  ѧҤ͹ ͧ֡ͧ...
2013-07-06 01:04:37
  ʹ觢ͺࢵҤҤҡ͹ФѺ...
2013-03-24 18:54:20
  ѧդѺҹԴѺ 08...
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
  ͧ gotoxy ѧ...
2017-08-28 11:45:52
  ͧҧա u...
2017-08-27 20:09:01
  #define GLUT_DISABLE_ATEXIT...
2017-08-27 12:53:17
  դԻ͹ ...
2017-08-27 10:50:02
  Ѻ ͹ matlab ¹ matlab...
2017-06-03 16:27:23
  ੾зҧҴ ͧҢ...
2017-05-25 16:18:08
  ͧ˹Ѻ os ...
2017-05-25 16:12:47
  ¹ php curl ...
2017-04-20 01:04:20
  ¹ ...
2017-03-27 12:50:54
  ʧҷ ͧѾഷ...
2017-03-27 12:37:20
  Homework comment
  ͺسҡѺ...
2017-08-16 18:27:25
  ͧ ͧ ѧ ^^...
2017-04-18 18:40:46
  ͧ ͧ ѧ ^^...
2017-04-18 18:37:54
  á flowchart ѹ...
2017-04-18 17:43:33
  ҡ flowchart ...
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
  ҡҺ鴹Ѻѧ...
2016-09-05 09:31:27
  ͧ֡¹...
2016-04-22 00:47:49
  Article comment
  [b] , ...
2017-10-20 10:05:06
  [b]5 ...
2017-10-18 08:19:17
  - ...
2017-10-18 07:17:11
  [b] ...
2017-10-18 06:07:31
  [b] 96 ...
2017-10-18 06:05:28
  - ...
2017-10-18 05:49:56
  code ͧ VB ú...
2017-09-28 16:50:02
  ҨѺ ͧ
...

2017-07-11 09:59:35
  ö͡Ѻ anycast ...
2017-07-05 10:12:35
  Ѻ س "Դ" ͧ֡...
2016-06-18 15:21:09
  9Mcode comment
  ҡ...
2014-02-21 08:52:19

Link Exchange

ѵҤɳ
Statistics of Sourcecode in Thailand
 
 J2ME (Java Micro Edition) Tutorial  

- - - - - - - - - - - - - - ʹѺʹع- - - - - - - - - - - - - -

 J2ME (Java Micro Edition)
 
 

5 ҤԺѵ

 

5 ҤԺѵ

ҧ 1 Hello Canvas

HelloCanvas.java

Download Code Download Code
/*
 * HelloCanvas.java
 *
 * Created on 17 ѹ¹ 2546, 16:05 .
 */

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  suppakit
 * @version
 */
public class HelloCanvas extends MIDlet implements CommandListener {
    
    private Command exitCommand; // The exit command
    private Display display;    // The display for this MIDlet
    
    public HelloCanvas() {
        display = Display.getDisplay(this);
        exitCommand = new Command("Exit", Command.SCREEN, 2);
    }
    
    /**
     * Start up the Hello MIDlet by creating the TextBox and associating
     * the exit command and listener.
     */
    public void startApp() {
        SimpleCanvas canvas = new SimpleCanvas();
        canvas.addCommand(exitCommand);
        canvas.setCommandListener(this);        
        display.setCurrent(canvas);
    }
    
    /**
     * 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) {
    }
    
    /*
     * Respond to commands, including exit
     * On the exit command, cleanup and notify that the MIDlet has been destroyed.
     */
    public void commandAction(Command c, Displayable s) {
        if (c == exitCommand) {
            destroyApp(false);
            notifyDestroyed();
        }
    }
    
}

SimpleCanvas.java

Download Code Download Code
/*
 * SimpleCanvas.java
 *
 * Created on 17 ѹ¹ 2546, 16:07 .
 */

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

/**
 *
 * @author  suppakit
 * @version
 */
public class SimpleCanvas extends Canvas {
    /**
     * paint
     */
    public void paint(Graphics g) {
        g.setColor(255,255,255);
        g.fillRect(0,0,getWidth(),getHeight());
        g.setColor(0,0,0);
        g.drawString("Hello Canvas",0,getHeight()/2,Graphics.TOP | Graphics.LEFT);
    }   
   
}

š Run

HelloCanvas MIDlet
ٻ 42 ʴ˹ҵҧ Emulator run MIDlet ¹

͸Ժ: ѧࡵ MIDlet ǹ Сͺ 2 ǹ ǹá MIDlet ѡ ׺ʹ Ҩҡ MIDlet ǹͧ 繤 SimpleCanvas ׺ʹҨҡ Canvas

㹡ҧ鹨ҡ ҧ MIDlet á Ẻҧѹ ҡ SimpleCanvas ж١ path ǡѺ MIDlet ѡ ö¡ҹ ʴ ѧٻ


ҧ 2 Font MIDlet

FontMIDlet.java

Download Code Download Code
/*
 * FontMIDlet.java
 *
 * Created on 17 ѹ¹ 2546, 16:05 .
 */

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  suppakit
 * @version
 */
public class FontMIDlet extends MIDlet implements CommandListener {
    
    private Command exitCommand; // The exit command
    private Display display;    // The display for this MIDlet
    
    public FontMIDlet() {
        display = Display.getDisplay(this);
        exitCommand = new Command("Exit", Command.SCREEN, 2);
    }
    
    /**
     * Start up the Hello MIDlet by creating the TextBox and associating
     * the exit command and listener.
     */
    public void startApp() {
   Displayable d = new FontCanvas();
   Display.getDisplay(this).setCurrent(d);
    }
    
    /**
     * 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) {
    }
    
    /*
     * Respond to commands, including exit
     * On the exit command, cleanup and notify that the MIDlet has been destroyed.
     */
    public void commandAction(Command c, Displayable s) {
        if (c == exitCommand) {
            destroyApp(false);
            notifyDestroyed();
        }
    }
    
}

FontCanvas.java

Download Code Download Code
/*
 * FontCanvas.java
 *
 * Created on 17 ѹ¹ 2546, 16:07 .
 */

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

/**
 *
 * @author  suppakit
 * @version
 */
public class FontCanvas extends Canvas  implements CommandListener {
  private Font mSystemFont, mMonospaceFont, mProportionalFont;
  private Command mBoldCommand, mItalicCommand, mUnderlineCommand;

public FontCanvas(){
  this(Font.STYLE_PLAIN);
}

public FontCanvas(int style){
  setStyle(style);
  mBoldCommand = new Command("Bold", Command.SCREEN, 0);
  mItalicCommand = new Command("Italic", Command.SCREEN, 0);
  mUnderlineCommand = new Command("Underline", Command.SCREEN, 0);
  addCommand(mBoldCommand);
  addCommand(mItalicCommand);
  addCommand(mUnderlineCommand);
  setCommandListener(this);
}

  public void setStyle(int style){
    mSystemFont = Font.getFont(Font.FACE_SYSTEM, style, Font.SIZE_MEDIUM);
    mMonospaceFont = Font.getFont(Font.FACE_MONOSPACE, style, Font.SIZE_MEDIUM);
    mProportionalFont = Font.getFont(Font.FACE_PROPORTIONAL, style, Font.SIZE_MEDIUM);   
  }

    /**
     * paint
     */
    public void paint(Graphics g) {
        int w = getWidth();
   int h = getHeight();

   //Clear the Canvas
   g.setGrayScale(255);
   g.fillRect(0, 0, w-1, h-1);
   g.setGrayScale(0);
   g.drawRect(0, 0, w-1, h-1);

   int x = w/2;
   int y=20;

   y += showFont(g, "System", x, y, mSystemFont);
   y += showFont(g, "Monospace", x, y, mMonospaceFont);
   y += showFont(g, "Proportional", x, y, mProportionalFont);

    }   
  
  private int showFont(Graphics g, String s, int x, int y, Font f){
    g.setFont(f);
    g.drawString(s, x, y, Graphics.TOP | Graphics.HCENTER);
    return f.getHeight();

  }
  
  public void commandAction(Command c, Displayable s){
    boolean isBold = mSystemFont.isBold()^(c == mBoldCommand);
    boolean isItalic = mSystemFont.isItalic()^(c == mItalicCommand);
    boolean isUnderline = mSystemFont.isUnderlined()^(c == mUnderlineCommand);

    int style =
		(isBold ? Font.STYLE_BOLD : 0)|
		(isItalic ? Font.STYLE_ITALIC : 0)|
		(isUnderline ? Font.STYLE_UNDERLINED : 0);
    setStyle(style);
    repaint();

  }
   
}

š Run

FontMIDlet
ٻ 43 ʴ˹ҵҧ Emulator run MIDlet ¹

͸Ժ: 鴢ҧ 繵ҧ㹡ʴ ͹ Ẻҧ


ҧ 3 Image MIDlet

  • ѧҡسҧ Project ImageMIDlet
  • ӡäѴ͡ C:\WTK20\apps\photoalbum\res\icons\Duke.png C:\WTK20\apps\ImageMIDlet\res
  • ԡ Setting ˹ҵҧ ͧ J2ME Wireless Tookits
  • ͡ User Define
  • ԡ Add
  • ˹ Property Name Duke ԡ OK
  • ͧ Value ͹ͤ \res\Duke.png
  • ԡ OK
  • ͨҡ ҧ ImageCanvas.java Ǻѡ֡ path ͧ src ͧ 礢ͧس
  • ӡ Build Run ŵٻ

ImageMIDlet.java

Download Code Download Code
/*
* ImageMIDlet.java
*
* Created on 17 ѹ¹ 2546, 16:05 .
*/

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 suppakit
* @version
*/

public class ImageMIDlet extends MIDlet implements CommandListener {

private Command exitCommand; // The exit command

public ImageMIDlet() {
exitCommand = new Command("Exit", Command.SCREEN, 2);
}

/**
* Start up the Hello MIDlet by creating the TextBox and associating
* the exit command and listener.
*/

public void startApp() {
Displayable d = new ImageCanvas();
Display.getDisplay(this).setCurrent(d);
}

/**
* 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) {
}

/*
* Respond to commands, including exit
* On the exit command, cleanup and notify that the MIDlet has been destroyed.
*/

public void commandAction(Command c, Displayable s) {
if (c == exitCommand) {
destroyApp(false);
notifyDestroyed();
}
}

}

ImageCanvas.java

Download Code Download Code
/*
 * ImageCanvas.java
 *
 * Created on 17 ѹ¹ 2546, 16:07 .
 */

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

/**
 *
 * @author  suppakit
 * @version
 */
public class ImageCanvas extends Canvas {
    /**
     * paint
     */
    public void paint(Graphics g) {
   g.setColor(255,255,255);
   g.fillRect(0, 0, getWidth(), getHeight());

   try{
    Image icon = Image.createImage("/Duke.png");
    g.drawImage(icon,10,10, Graphics.TOP|Graphics.LEFT);
    g.setColor(128,128,128);
    g.drawRect(9, 9, icon.getWidth()+1, icon.getHeight()+1);
   }catch(java.io.IOException ex){
    g.drawString("No image",10,10, Graphics.TOP|Graphics.LEFT);
   }
 
    }   
  
  
}

š Run

Image MIDlet
ٻ 44 ʴ˹ҵҧ Emulator ͧ Nokia 6650
run MIDlet ¹

͸Ժ: 鴢ҧ 繵ҧ㹡û͹ŢѾ ѧ TextBox OK Exit


ҧ 4 TextBox MIDlet

BoxTextMIDlet.java

Download Code Download Code
/*
 * BoxTextMIDlet.java
 *
 * Created on 17 ѹ¹ 2546, 16:05 .
 */

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  suppakit
 * @version
 */
public class BoxTextMIDlet extends MIDlet implements CommandListener {
    
    private Command exitCommand; // The exit command   
    
    public BoxTextMIDlet() {        
        exitCommand = new Command("Exit", Command.SCREEN, 2);
    }
    
    /**
     * Start up the Hello MIDlet by creating the TextBox and associating
     * the exit command and listener.
     */
    public void startApp() {
   Displayable d = new BoxTextCanvas();
   Display.getDisplay(this).setCurrent(d);
    }
    
    /**
     * 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) {
    }
    
    /*
     * Respond to commands, including exit
     * On the exit command, cleanup and notify that the MIDlet has been destroyed.
     */
    public void commandAction(Command c, Displayable s) {
        if (c == exitCommand) {
            destroyApp(false);
            notifyDestroyed();
        }
    }
    
}

BoxTextCanvas.java

Download Code Download Code
/*
 * BoxTextCanvas.java
 *
 * Created on 17 ѹ¹ 2546, 16:07 .
 */

import javax.microedition.lcdui.*;

/**
 *
 * @author  suppakit
 * @version
 */
public class BoxTextCanvas extends Canvas {
  private Font mFont;
  
  public BoxTextCanvas(){
    mFont = Font.getFont(Font.FACE_PROPORTIONAL, Font.STYLE_PLAIN, Font.SIZE_LARGE);
  }

    public void paint(Graphics g) {
   int w = getWidth();
   int h = getHeight();
   g.setColor(255,255,255);
   g.fillRect(0,0,w,h);
   g.setColor(0,0,0);		
   String s = "dolce";
   int stringWidth = mFont.stringWidth(s);
   int stringHeight = mFont.getHeight();
   int x = (w-stringWidth)/2;
   int y = h/2;
   g.setFont(mFont);
   g.drawString(s, x, y, Graphics.TOP|Graphics.LEFT);
   g.drawRect(x, y, stringWidth, stringHeight);
 
    }   
  
  
}

š Run

BoxText MIDlet
ٻ 45 ʴ˹ҵҧ Emulator ͧ Nokia 6650
run MIDlet ¹

͸Ժ: 鴢ҧ 繵ҧʴ֧ ҧ BoxTextCanvas ʴͤ ͺ ͧ


ҧ 5 KeyMIDlet

KeyMIDlet.java

Download Code Download Code
/*
 * KeyMIDlet.java
 *
 * Created on 17 ѹ¹ 2546, 16:05 .
 */

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  suppakit
 * @version
 */
public class KeyMIDlet extends MIDlet implements CommandListener {
    
    private Command exitCommand; // The exit command   
    
    public KeyMIDlet() {        
        exitCommand = new Command("Exit", Command.SCREEN, 2);
    }
    
    /**
     * Start up the Hello MIDlet by creating the TextBox and associating
     * the exit command and listener.
     */
    public void startApp() {
   Displayable d = new KeyCanvas();
   Display.getDisplay(this).setCurrent(d);
    }
    
    /**
     * 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) {
    }
    
    /*
     * Respond to commands, including exit
     * On the exit command, cleanup and notify that the MIDlet has been destroyed.
     */
    public void commandAction(Command c, Displayable s) {
        if (c == exitCommand) {
            destroyApp(false);
            notifyDestroyed();
        }
    }
    
}

KeyCanvas.java

Download Code Download Code
/*
 * KeyCanvas.java
 *
 * Created on 17 ѹ¹ 2546, 16:07 .
 */

import javax.microedition.lcdui.*;

/**
 *
 * @author  suppakit
 * @version
 */
public class KeyCanvas extends Canvas {
 private Font mFont;
 String mMessage = "[Press keys]";
 
  
  public KeyCanvas(){
  mFont = Font.getFont(Font.FACE_PROPORTIONAL, Font.STYLE_PLAIN, Font.SIZE_MEDIUM);
    
  }

    public void paint(Graphics g) {
   int w = getWidth();
   int h = getHeight();

   //Clear Canvas
   g.setGrayScale(255);
   g.fillRect(0,0,w,h);
   g.setGrayScale(0);
   g.drawRect(0,0,w-1,h-1);
   g.setFont(mFont);

   int x = w/2;
   int y = h/2;

   g.drawString(mMessage, x, y, Graphics.BASELINE|Graphics.HCENTER); 
    }   
  
    protected void keyPressed(int keyCode){
   int gameAction = getGameAction(keyCode);
   switch(gameAction){
    case UP: mMessage = "UP"; break;
    case DOWN: mMessage = "DOWN"; break;
    case LEFT: mMessage = "LEFT"; break;
    case RIGHT: mMessage = "RIGHT"; break;
    case FIRE: mMessage = "FIRE"; break;
    case GAME_A: mMessage = "GAME_A"; break;
    case GAME_B: mMessage = "GAME_B"; break;
    case GAME_C: mMessage = "GAME_C"; break;
    case GAME_D: mMessage = "GAME_D"; break;
    default : mMessage = ""; break;

   }
  repaint(); 
  }

  
}

š Run

Key MIDlet
ٻ 46 ʴ˹ҵҧ Emulator ͧ Nokia 6650
run MIDlet ¹

͸Ժ: 鴢ҧ 繵ҧʴ֧ Ѻҧ 㹡ҧ к J2ME


ҧ 6 OffScreen MIDlet

OffScreenMIDlet.java

Download Code Download Code
/*
 * OffScreenMIDlet.java
 *
 * Created on 17 ѹ¹ 2546, 16:05 .
 */

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  suppakit
 * @version
 */
public class OffScreenMIDlet extends MIDlet implements CommandListener {
    
    private Command exitCommand; // The exit command   
    
    public OffScreenMIDlet() {        
        exitCommand = new Command("Exit", Command.SCREEN, 2);
    }
    
    /**
     * Start up the Hello MIDlet by creating the TextBox and associating
     * the exit command and listener.
     */
    public void startApp() {
   Displayable d = new OffScreenCanvas();
   Display.getDisplay(this).setCurrent(d);
    }
    
    /**
     * 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) {
    }
    
    /*
     * Respond to commands, including exit
     * On the exit command, cleanup and notify that the MIDlet has been destroyed.
     */
    public void commandAction(Command c, Displayable s) {
        if (c == exitCommand) {
            destroyApp(false);
            notifyDestroyed();
        }
    }
    
}

OffScreenCanvas.java

Download Code Download Code
/*
 * OffScreenCanvas.java
 *
 * Created on 17 ѹ¹ 2546, 16:07 .
 */

import javax.microedition.lcdui.*;

/**
 *
 * @author  suppakit
 * @version
 */
public class OffScreenCanvas extends Canvas {
 private Image mImage;

 
  
    public void paint(Graphics g) {
   if(mImage == null){
   initialize();
   g.drawImage(mImage, 0, 0, Graphics.TOP|Graphics.LEFT);
  }
    
  }

    public void initialize(){
     int w = getWidth();
     int h = getHeight();
   mImage = Image.createImage(w,h);
   Graphics g = mImage.getGraphics();
   g.drawRect(0,0,w-1,h-1);
   g.drawLine(0,0,w-1,h-1);
   g.drawLine(w-1,0,0,h-1);
   
    }    
   

  
}

š Run

OffScreen MIDlet
ٻ 47 ʴ˹ҵҧ Emulator ͧ Nokia 6650
run MIDlet ¹

͸Ժ: 鴢ҧ 繵ҧʴ֧ ʴҾ ҧ Image

 

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