<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-2395475804046082519</id><updated>2011-04-21T11:44:53.704-07:00</updated><category term='mobile'/><category term='javame'/><category term='how to'/><category term='mobile application'/><category term='j2me'/><category term='midlet'/><category term='midp'/><title type='text'>Learn with me</title><subtitle type='html'>This is the place that you can see what I've been learnt. Hope this blog become useful for you.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://the-midp.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2395475804046082519/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://the-midp.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Keenan</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_9QRrPYjT-xA/SS0NRH1QiNI/AAAAAAAAAAM/_o1LNEPukfM/S220/yeah.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>8</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-2395475804046082519.post-8009063504819119592</id><published>2009-01-14T03:41:00.000-08:00</published><updated>2009-01-14T03:51:03.469-08:00</updated><title type='text'>The BlueJ Discuss forum</title><content type='html'>I ask many question on that milis(mailing list)&lt;br /&gt;&lt;br /&gt;I try to ask some question on the BlueJ discuss.&lt;br /&gt;&lt;br /&gt;The question is, How to connect using the real Mobile phones..&lt;br /&gt;So my later script is REALY working :)&lt;br /&gt;&lt;a href="http://groups.google.com/group/bluej-discuss?hl=en"&gt;http://groups.google.com/group/bluej-discuss?hl=en&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2395475804046082519-8009063504819119592?l=the-midp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://the-midp.blogspot.com/feeds/8009063504819119592/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://the-midp.blogspot.com/2009/01/bluej-discuss-forum.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2395475804046082519/posts/default/8009063504819119592'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2395475804046082519/posts/default/8009063504819119592'/><link rel='alternate' type='text/html' href='http://the-midp.blogspot.com/2009/01/bluej-discuss-forum.html' title='The BlueJ Discuss forum'/><author><name>Keenan</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_9QRrPYjT-xA/SS0NRH1QiNI/AAAAAAAAAAM/_o1LNEPukfM/S220/yeah.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2395475804046082519.post-3046960964935524264</id><published>2008-12-31T03:13:00.000-08:00</published><updated>2008-12-31T03:28:35.094-08:00</updated><title type='text'>Server act</title><content type='html'>when server receive the datagram..&lt;br /&gt;&lt;code&gt;&lt;br /&gt;public void run() {&lt;br /&gt;..&lt;br /&gt;....&lt;br /&gt;        DatagramConnection dc = (DatagramConnection) Connector.open("datagram://:" + portString);&lt;br /&gt;        f.insert(1,new StringItem("Server ready on port "+portString,""));&lt;br /&gt;        sender = new Sender(dc);&lt;br /&gt;        while (true) {&lt;br /&gt;        Datagram dg = dc.newDatagram(100);&lt;br /&gt;        dc.receive(dg);&lt;br /&gt;        address = dg.getAddress();&lt;br /&gt;        f.insert(1,new StringItem(address+" : ",new String(dg.getData(), 0, dg.getLength())));&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;&lt;/code&gt;The dialog, ...:&lt;br /&gt;&lt;br /&gt;Server : waiting in the front house (near street)&lt;br /&gt;Server : I'm ready at here !&lt;br /&gt;Server : (making sender)&lt;br /&gt;Server : prepare for receiving my goods(making a box, 10 x 2 x 5)&lt;br /&gt;Server : waiting until I receiving my goods&lt;br /&gt;Server : I get the goods! I'll put in the box.&lt;br /&gt;Server : (See the sender label) aaah, from my client!&lt;br /&gt;Server : (Placing the goods)I opened the box, and place the data in the "f" table.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2395475804046082519-3046960964935524264?l=the-midp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://the-midp.blogspot.com/feeds/3046960964935524264/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://the-midp.blogspot.com/2008/12/server-act.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2395475804046082519/posts/default/3046960964935524264'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2395475804046082519/posts/default/3046960964935524264'/><link rel='alternate' type='text/html' href='http://the-midp.blogspot.com/2008/12/server-act.html' title='Server act'/><author><name>Keenan</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_9QRrPYjT-xA/SS0NRH1QiNI/AAAAAAAAAAM/_o1LNEPukfM/S220/yeah.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2395475804046082519.post-7840960229245329797</id><published>2008-12-31T00:52:00.000-08:00</published><updated>2008-12-31T01:42:28.110-08:00</updated><title type='text'>The receive method at DatagramConnection class</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_9QRrPYjT-xA/SVs-ak9_jCI/AAAAAAAAABQ/8XdZa9eLqOY/s1600-h/theReceiveMethod.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 300px; height: 226px;" src="http://3.bp.blogspot.com/_9QRrPYjT-xA/SVs-ak9_jCI/AAAAAAAAABQ/8XdZa9eLqOY/s320/theReceiveMethod.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5285887213970623522" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This important !&lt;br /&gt;I think in the while(){} loop at the Server class, The Server is always receiving a blank datagram. But when i see in the Java Tutorial.&lt;br /&gt;&lt;br /&gt;"The receive method waits forever until a packet is received. If no packet is received, the server makes no further progress and just waits. "&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2395475804046082519-7840960229245329797?l=the-midp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://the-midp.blogspot.com/feeds/7840960229245329797/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://the-midp.blogspot.com/2008/12/receive-method-at-datagramconnection.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2395475804046082519/posts/default/7840960229245329797'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2395475804046082519/posts/default/7840960229245329797'/><link rel='alternate' type='text/html' href='http://the-midp.blogspot.com/2008/12/receive-method-at-datagramconnection.html' title='The receive method at DatagramConnection class'/><author><name>Keenan</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_9QRrPYjT-xA/SS0NRH1QiNI/AAAAAAAAAAM/_o1LNEPukfM/S220/yeah.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_9QRrPYjT-xA/SVs-ak9_jCI/AAAAAAAAABQ/8XdZa9eLqOY/s72-c/theReceiveMethod.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2395475804046082519.post-6124134873897540376</id><published>2008-12-29T07:50:00.001-08:00</published><updated>2008-12-29T20:03:57.155-08:00</updated><title type='text'>Connection ? : Datagram</title><content type='html'>I'm always been very interested in connection in mobile phone, because phone comes handy, most of all my friend have phone and still connected. Now i want to LEARN connection, a Datagram connection. Datagram connection is simpler than Socket, that's what Java Tutorial said. &lt;br /&gt;&lt;br /&gt;So.. let's begin.&lt;br /&gt;First, I copied all of class in the WTK2.5.2_01 (C:\WTK2.5.2_01\apps\NetworkDemo\classes\datagram) to BlueJ! (The Readme.txt file also :D )&lt;br /&gt;Compile all, deploy.&lt;br /&gt;&lt;br /&gt;As seen in the readme file, "Run two instances of the emulator", "One acts as the datagram server, and the other as the datagram client". So, i click the Deploy button twice, and i get two emulator. After that, i go to the first emulator, and set that as server, and then set the client. I try to send a message to server, and in the server phone, i get the message. And then i try the other way. It Work !&lt;br /&gt;&lt;br /&gt;That is the basic connection, i gonna edit them all.&lt;br /&gt;&lt;br /&gt;&lt;font style="color:#00EE00;"&gt;updated!&lt;/font&gt;&lt;br /&gt;The first thing that I do is, give the Server a Name !&lt;br /&gt;So, in the Server class, I declare new variable  called ServerName, and add new Constructor. Also a method that return the server name.&lt;br /&gt;The variable&lt;code&gt;&lt;br /&gt;..&lt;br /&gt;....&lt;br /&gt;&lt;br /&gt;    private DatagramMIDlet parent;&lt;br /&gt;    private Display display;&lt;br /&gt;    private String serverName;   /**&lt;blink&gt;here&lt;/blink&gt;*/&lt;br /&gt;    private Form f;&lt;br /&gt;    private StringItem si;&lt;br /&gt;    private TextField tf;&lt;br /&gt;..&lt;br /&gt;..&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;the new Constructor&lt;code&gt;&lt;br /&gt;..&lt;br /&gt;...&lt;br /&gt;display.setCurrent(f);&lt;br /&gt;    }&lt;br /&gt;    &lt;br /&gt;    public Server(DatagramMIDlet m, int p, String name) {&lt;br /&gt;    parent = m;&lt;br /&gt;    port = p;&lt;br /&gt;    serverName = name;&lt;br /&gt;    display = Display.getDisplay(parent);&lt;br /&gt;    f = new Form(name);&lt;br /&gt;    si = new StringItem("Status:", " ");&lt;br /&gt;    tf = new TextField("Send:", "", 30, TextField.ANY);&lt;br /&gt;    f.append(si);&lt;br /&gt;    f.append(tf);&lt;br /&gt;    f.addCommand(sendCommand);&lt;br /&gt;    f.addCommand(exitCommand);&lt;br /&gt;    f.setCommandListener(this);&lt;br /&gt;    display.setCurrent(f);&lt;br /&gt;    }&lt;br /&gt;...&lt;br /&gt;..&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;And..  getServerName() method,&lt;code&gt;&lt;br /&gt;public String getServerName()&lt;br /&gt;    {&lt;br /&gt;        return serverName;    &lt;br /&gt;    }&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;I also edited the DatagramMIDlet class, so the server implementing my constructor(look at the commandAction method)&lt;code&gt;&lt;br /&gt;if (name.equals(SERVER)) {&lt;br /&gt;  Server server = new Server(this, port,"The Server !");&lt;br /&gt;  server.start();&lt;br /&gt;     } else {&lt;br /&gt;  Client client = new Client(this, port);&lt;br /&gt;  client.start();&lt;br /&gt;     }&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;Compile, Deploy, try becoming the Server, see what i have been changed ? :)&lt;br /&gt;&lt;br /&gt;&lt;font style="color:#00EE00;"&gt;updated!&lt;/font&gt;&lt;br /&gt;I have been edited many code of the server and client class&lt;br /&gt;because of to much, i copy paste it directly&lt;br /&gt;&lt;br /&gt;first, the server class&lt;br /&gt;&lt;code&gt;&lt;br /&gt;import java.io.*;&lt;br /&gt;import javax.microedition.io.*;&lt;br /&gt;import javax.microedition.lcdui.*;&lt;br /&gt;&lt;br /&gt;public class Server implements Runnable, CommandListener {&lt;br /&gt;&lt;br /&gt;    private DatagramMIDlet parent;&lt;br /&gt;    private Display display;&lt;br /&gt;    private String serverName;&lt;br /&gt;    private Form f;&lt;br /&gt;    private TextField tf;&lt;br /&gt;    private Command sendCommand = new Command("Send", Command.ITEM, 1);&lt;br /&gt;    private Command exitCommand = new Command("Exit", Command.EXIT, 1);&lt;br /&gt;    Sender sender;&lt;br /&gt;    private String address;&lt;br /&gt;    private int port;&lt;br /&gt;&lt;br /&gt;    ..&lt;br /&gt;......&lt;br /&gt;...&lt;br /&gt;    &lt;br /&gt;    public Server(DatagramMIDlet m, int p, String name) {&lt;br /&gt;    parent = m;&lt;br /&gt;    port = p;&lt;br /&gt;    serverName = name;&lt;br /&gt;    display = Display.getDisplay(parent);&lt;br /&gt;    f = new Form(name);&lt;br /&gt;    tf = new TextField("Send:", "", 30, TextField.ANY);&lt;br /&gt;    f.append(tf);&lt;br /&gt;    f.addCommand(sendCommand);&lt;br /&gt;    f.addCommand(exitCommand);&lt;br /&gt;    f.setCommandListener(this);&lt;br /&gt;    display.setCurrent(f);&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    ....&lt;br /&gt;.......&lt;br /&gt;....&lt;br /&gt;&lt;br /&gt;    public void run() {&lt;br /&gt;    String portString = String.valueOf(port);&lt;br /&gt;    try {&lt;br /&gt;        f.insert(1,new StringItem("Waiting for connection on port"+portString,""));/**&lt;blink&gt;here&lt;/blink&gt;*/&lt;br /&gt;        DatagramConnection dc = (DatagramConnection) Connector.open("datagram://:" + portString); &lt;br /&gt;&lt;br /&gt;        sender = new Sender(dc);&lt;br /&gt;&lt;br /&gt;        while (true) {&lt;br /&gt;        Datagram dg = dc.newDatagram(100);&lt;br /&gt;        dc.receive(dg);&lt;br /&gt;        address = dg.getAddress();&lt;br /&gt;        f.insert(1,new StringItem(address+" : ",new String(dg.getData(), 0, dg.getLength())));/**&lt;blink&gt;here&lt;/blink&gt;*/&lt;br /&gt;        }&lt;br /&gt;    } catch (IOException ioe) {&lt;br /&gt;        Alert a = new Alert("Server", "Port " + portString&lt;br /&gt;            + " is already taken.", null, AlertType.ERROR);&lt;br /&gt;        a.setTimeout(Alert.FOREVER);&lt;br /&gt;        a.setCommandListener(this);&lt;br /&gt;        display.setCurrent(a);&lt;br /&gt;    } catch (Exception e) {&lt;br /&gt;        e.printStackTrace();&lt;br /&gt;    }&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    public void commandAction(Command c, Displayable s) {&lt;br /&gt;    if ((c == sendCommand) &amp;&amp; !parent.isPaused()) {&lt;br /&gt;        if (address == null) {&lt;br /&gt;        f.insert(3,new StringItem("Ooops! ","No destination address")); /**&lt;blink&gt;here&lt;/blink&gt;*/&lt;br /&gt;        } else {&lt;br /&gt;        sender.send(address, tf.getString()); /**&lt;blink&gt;here&lt;/blink&gt;*/&lt;br /&gt;        f.insert(1,new StringItem("Me(Server) : ",tf.getString()));/**&lt;blink&gt;here&lt;/blink&gt;*/&lt;br /&gt;        tf.setString("");/**&lt;blink&gt;here&lt;/blink&gt;*/&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    public String getServerName()&lt;br /&gt;    {&lt;br /&gt;        return serverName;    &lt;br /&gt;    }&lt;br /&gt;    &lt;br /&gt;    public String[] breakString(String s)&lt;br /&gt;    {&lt;br /&gt;        char[] ca = s.toCharArray();&lt;br /&gt;        String[] sa = {};&lt;br /&gt;        int h = 0;&lt;br /&gt;        &lt;br /&gt;        for(int w = 0;w &lt;= ca.length-1;w++)&lt;br /&gt;        {&lt;br /&gt;            if(ca.equals(" "))&lt;br /&gt;            {&lt;br /&gt;                h = h + 1;&lt;br /&gt;            }&lt;br /&gt;            else&lt;br /&gt;            {&lt;br /&gt;                sa[h] = sa[h]+ca[w];&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;        return sa;&lt;br /&gt;    }&lt;br /&gt;    &lt;br /&gt;}&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;The Client class&lt;br /&gt;&lt;code&gt;&lt;br /&gt;import java.io.IOException;&lt;br /&gt;&lt;br /&gt;import javax.microedition.io.*;&lt;br /&gt;import javax.microedition.lcdui.*;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;public class Client implements Runnable, CommandListener {&lt;br /&gt;    private DatagramMIDlet parent;&lt;br /&gt;    private int port;&lt;br /&gt;    private String ip; /**&lt;blink&gt;here&lt;/blink&gt;*/&lt;br /&gt;    private Display display;&lt;br /&gt;    private Form f;&lt;br /&gt;    private TextField tf;&lt;br /&gt;&lt;br /&gt;    private Command sendCommand = new Command("Send", Command.ITEM, 1);&lt;br /&gt;    private Command exitCommand = new Command("Exit", Command.EXIT, 1);&lt;br /&gt;&lt;br /&gt;    Sender sender;&lt;br /&gt;&lt;br /&gt;..&lt;br /&gt;...&lt;br /&gt;...&lt;br /&gt;    &lt;br /&gt;    public Client(DatagramMIDlet m, int p, String IP) {&lt;br /&gt;    parent = m;&lt;br /&gt;    port = p;&lt;br /&gt;    this.ip = IP;  /**&lt;blink&gt;here&lt;/blink&gt;*/&lt;br /&gt;    display = Display.getDisplay(parent);&lt;br /&gt;    f = new Form("Datagram Client");&lt;br /&gt;    tf = new TextField("Send:", "", 30, TextField.ANY);&lt;br /&gt;    f.append(tf);&lt;br /&gt;    f.addCommand(sendCommand);&lt;br /&gt;    f.addCommand(exitCommand);&lt;br /&gt;    f.setCommandListener(this);&lt;br /&gt;    display.setCurrent(f);&lt;br /&gt;    }&lt;br /&gt;..&lt;br /&gt;...&lt;br /&gt;...&lt;br /&gt;    public void run() {&lt;br /&gt;    String portString = String.valueOf(port);&lt;br /&gt;    try {&lt;br /&gt;        DatagramConnection dc = (DatagramConnection) Connector.open("datagram://"+ip+":" + portString); /**&lt;blink&gt;here&lt;/blink&gt;*/&lt;br /&gt;&lt;br /&gt;        f.insert(1,new StringItem("Waiting for connection "+ip+" on port "+portString,""));/**&lt;blink&gt;here&lt;/blink&gt;*/&lt;br /&gt;&lt;br /&gt;        sender = new Sender(dc);&lt;br /&gt;&lt;br /&gt;        while (true) {&lt;br /&gt;        Datagram dg = dc.newDatagram(100);&lt;br /&gt;        dc.receive(dg);&lt;br /&gt;&lt;br /&gt;        // Have we actually received something or&lt;br /&gt;        // is this just a timeout ?&lt;br /&gt;        if (dg.getLength() &gt; 0) {&lt;br /&gt;            f.insert(1,new StringItem("Server : ",new String(dg.getData(), 0, dg.getLength()))); /**&lt;blink&gt;here&lt;/blink&gt;*/&lt;br /&gt;        }&lt;br /&gt;        }&lt;br /&gt;    } catch (ConnectionNotFoundException cnfe) {&lt;br /&gt;        ....&lt;br /&gt;.....&lt;br /&gt;..&lt;br /&gt;    public void commandAction(Command c, Displayable s) {&lt;br /&gt;    if ((c == sendCommand) &amp;&amp; !parent.isPaused()) {&lt;br /&gt;        sender.send(null, tf.getString());&lt;br /&gt;        f.insert(1,new StringItem("Me(Client) : ",tf.getString()));/**&lt;blink&gt;here&lt;/blink&gt;*/&lt;br /&gt;        tf.setString("");/**&lt;blink&gt;here&lt;/blink&gt;*/&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    if (c == exitCommand) {&lt;br /&gt;        parent.destroyApp(true);&lt;br /&gt;        parent.notifyDestroyed();&lt;br /&gt;    }&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    public void stop() {&lt;br /&gt;    }&lt;br /&gt;    &lt;br /&gt;}&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;And the DatagramMIDlet class&lt;br /&gt;&lt;code&gt;&lt;br /&gt;import javax.microedition.lcdui.*;&lt;br /&gt;import javax.microedition.midlet.MIDlet;&lt;br /&gt;&lt;br /&gt;public class DatagramMIDlet extends MIDlet implements CommandListener {&lt;br /&gt;&lt;br /&gt;    private static final int DEFAULT_PORT = 5555;&lt;br /&gt;    private String IP_ADDRESS;&lt;br /&gt;    private static final String DEFAULT_IP = "202.3.213.129";&lt;br /&gt;    private static final String SERVER = "Server";&lt;br /&gt;    private static final String CLIENT = "Client";&lt;br /&gt;    private static final String[] names = { SERVER, CLIENT };&lt;br /&gt;    private static Display display;&lt;br /&gt;    private Form f;&lt;br /&gt;    private ChoiceGroup cg;&lt;br /&gt;    private TextField portField;&lt;br /&gt;    private TextField ipField; /**&lt;blink&gt;here&lt;/blink&gt;*/&lt;br /&gt;    private boolean isPaused;&lt;br /&gt;    private Command exitCommand = new Command("Exit", Command.EXIT, 1);&lt;br /&gt;    private Command startCommand = new Command("Start", Command.ITEM, 1);&lt;br /&gt;&lt;br /&gt;    public DatagramMIDlet() {&lt;br /&gt;    display = Display.getDisplay(this);&lt;br /&gt;    f = new Form("Datagram Demo");&lt;br /&gt;    cg = new ChoiceGroup("Please select peer", Choice.EXCLUSIVE, names,null);&lt;br /&gt;    f.append(cg);&lt;br /&gt;    portField = new TextField("Port number:", String.valueOf(DEFAULT_PORT),6, TextField.NUMERIC);&lt;br /&gt;    ipField = new TextField("IP address:", DEFAULT_IP,20, TextField.ANY);/**&lt;blink&gt;here&lt;/blink&gt;*/&lt;br /&gt;    f.append(ipField);/**&lt;blink&gt;here&lt;/blink&gt;*/&lt;br /&gt;    f.append(portField);&lt;br /&gt;&lt;br /&gt;    ....&lt;br /&gt;........&lt;br /&gt;......&lt;br /&gt;&lt;br /&gt;    public void commandAction(Command c, Displayable s) {&lt;br /&gt;    if (c == exitCommand) {&lt;br /&gt;        destroyApp(true);&lt;br /&gt;        notifyDestroyed();&lt;br /&gt;    } else if (c == startCommand) {&lt;br /&gt;        String name = cg.getString(cg.getSelectedIndex());&lt;br /&gt;        int port = Integer.parseInt(portField.getString());&lt;br /&gt;        String ip = ipField.getString(); /**&lt;blink&gt;here&lt;/blink&gt;*/&lt;br /&gt;        &lt;br /&gt;        if (name.equals(SERVER)) {&lt;br /&gt;        Server server = new Server(this, port,"The Server");/**&lt;blink&gt;here&lt;/blink&gt;*/&lt;br /&gt;        server.start();&lt;br /&gt;        } else {&lt;br /&gt;        Client client = new Client(this, port, ip);&lt;br /&gt;        client.start();&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2395475804046082519-6124134873897540376?l=the-midp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://the-midp.blogspot.com/feeds/6124134873897540376/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://the-midp.blogspot.com/2008/12/connection-datagram.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2395475804046082519/posts/default/6124134873897540376'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2395475804046082519/posts/default/6124134873897540376'/><link rel='alternate' type='text/html' href='http://the-midp.blogspot.com/2008/12/connection-datagram.html' title='Connection ? : Datagram'/><author><name>Keenan</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_9QRrPYjT-xA/SS0NRH1QiNI/AAAAAAAAAAM/_o1LNEPukfM/S220/yeah.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2395475804046082519.post-6057743409729467017</id><published>2008-12-27T06:31:00.000-08:00</published><updated>2008-12-29T10:31:18.978-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mobile'/><category scheme='http://www.blogger.com/atom/ns#' term='midlet'/><category scheme='http://www.blogger.com/atom/ns#' term='midp'/><category scheme='http://www.blogger.com/atom/ns#' term='j2me'/><category scheme='http://www.blogger.com/atom/ns#' term='how to'/><category scheme='http://www.blogger.com/atom/ns#' term='mobile application'/><category scheme='http://www.blogger.com/atom/ns#' term='javame'/><title type='text'>Playing with Graphics</title><content type='html'>Now, i want to make an application that draw a line, and i have to matter with MIDlet image class, and MIDlet Graphics. So here it is.&lt;br /&gt;&lt;code&gt;&lt;br /&gt;...&lt;br /&gt;public class DrawLine extends MIDlet implements CommandListener&lt;br /&gt;{&lt;br /&gt;&lt;br /&gt;    Form screen;&lt;br /&gt;    Image line;&lt;br /&gt;    TextField input_length;&lt;br /&gt;    Graphics gr;&lt;br /&gt;&lt;br /&gt;   /**&lt;br /&gt;    * Called by the Application Management Software (AMS) when the MIDlet&lt;br /&gt;    * begins execution.  The AMS is the software on a device that manages &lt;br /&gt;    * the downloading and life-cycle of MIDlets.  When this constructor &lt;br /&gt;    * returns, the AMS places the MIDlet in the Paused state.&lt;br /&gt;    */&lt;br /&gt;    public DrawLine()&lt;br /&gt;    {&lt;br /&gt;       screen = new Form("Draw.. Line...");      &lt;br /&gt;       line = Image.createImage(screen.getWidth(),50);&lt;br /&gt;       gr = line.getGraphics();&lt;br /&gt;       input_length = new TextField("Input Length Here","",10,TextField.NUMERIC);&lt;br /&gt;       screen.append(input_length);&lt;br /&gt;       screen.append(line);&lt;br /&gt;       screen.addCommand(new Command("Draw", Command.OK, 0));&lt;br /&gt;       screen.addCommand(new Command("Exit", Command.EXIT, 0));&lt;br /&gt;       screen.setCommandListener(this);&lt;br /&gt;    }&lt;br /&gt;...&lt;br /&gt;..&lt;br /&gt;    public void startApp()&lt;br /&gt;    {&lt;br /&gt;        Display.getDisplay(this).setCurrent(screen);&lt;br /&gt;    }&lt;br /&gt;..&lt;br /&gt;..&lt;br /&gt;public void commandAction(Command c, Displayable d)&lt;br /&gt;    {&lt;br /&gt;         &lt;br /&gt;           if(c.getLabel().equals("Exit"))&lt;br /&gt;           {&lt;br /&gt;                notifyDestroyed();    &lt;br /&gt;           }&lt;br /&gt;           else if(c.getLabel().equals("Draw"))&lt;br /&gt;           {&lt;br /&gt;               Graphics g = line.getGraphics();&lt;br /&gt;               int length = Integer.parseInt(input_length.getString());&lt;br /&gt;               screen.delete(1);&lt;br /&gt;               g.setColor(255,255,255);&lt;br /&gt;               g.drawLine(0,20,g.getClipWidth(),20); // delete previouse image with white color ^_^"&lt;br /&gt;               g.setColor(0,0,0);&lt;br /&gt;               g.drawLine(0,20,length,20);&lt;br /&gt;               input_length.setString("");&lt;br /&gt;               screen.append(line);&lt;br /&gt;            }&lt;br /&gt;&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;Compile, Deploy, just input the length to the text box, and then click draw, it should draw a line with your input length in pixels.&lt;br /&gt;After succeed with that, i want to make improvements. I crated a new class called DrawRectangle. I just add a new input field (TextField) because it's a rectangle who have width and height.&lt;br /&gt;&lt;code&gt;&lt;br /&gt;import javax.microedition.midlet.MIDlet;&lt;br /&gt;import javax.microedition.lcdui.*;&lt;br /&gt;&lt;br /&gt;/**&lt;br /&gt; * Class DrawRectangle - a simple MIDlet application that create rectangle image with user input&lt;br /&gt; *&lt;br /&gt; * @author     Keenan M&lt;br /&gt; * @version    1.0 :P&lt;br /&gt; */&lt;br /&gt;&lt;br /&gt;public class DrawRectangle extends MIDlet implements CommandListener&lt;br /&gt;{&lt;br /&gt;&lt;br /&gt;    Form screen;&lt;br /&gt;    Image rectangle;&lt;br /&gt;    TextField input_width;&lt;br /&gt;    TextField input_height;&lt;br /&gt;    Graphics gr;&lt;br /&gt;&lt;br /&gt;    public DrawRectangle()&lt;br /&gt;    {&lt;br /&gt;       screen = new Form("Draw.. Rectangle...");      &lt;br /&gt;       rectangle = Image.createImage(screen.getWidth(),screen.getHeight());&lt;br /&gt;       gr = rectangle.getGraphics();&lt;br /&gt;       input_width = new TextField("Input Length Here","",10,TextField.NUMERIC);&lt;br /&gt;       input_height = new TextField("Input Length Here","",10,TextField.NUMERIC);&lt;br /&gt;       screen.append(input_width);&lt;br /&gt;       screen.append(input_height);&lt;br /&gt;       screen.append(rectangle);&lt;br /&gt;       screen.addCommand(new Command("Draw", Command.OK, 0));&lt;br /&gt;       screen.addCommand(new Command("Exit", Command.EXIT, 0));&lt;br /&gt;       screen.setCommandListener(this);&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    public void startApp()&lt;br /&gt;    {&lt;br /&gt;        Display.getDisplay(this).setCurrent(screen);&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    public void pauseApp()&lt;br /&gt;    {&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    public void destroyApp(boolean unconditional)&lt;br /&gt;    {&lt;br /&gt;    }&lt;br /&gt;    &lt;br /&gt;    public void commandAction(Command c, Displayable d)&lt;br /&gt;    {&lt;br /&gt;         &lt;br /&gt;           if(c.getLabel().equals("Exit"))&lt;br /&gt;           {&lt;br /&gt;                notifyDestroyed();    &lt;br /&gt;           }&lt;br /&gt;           else if(c.getLabel().equals("Draw"))&lt;br /&gt;           {&lt;br /&gt;               Graphics gr = rectangle.getGraphics();&lt;br /&gt;               int width = Integer.parseInt(input_width.getString());&lt;br /&gt;               int height = Integer.parseInt(input_height.getString());&lt;br /&gt;               screen.delete(2);&lt;br /&gt;               /**              &lt;blink&gt;it's a clearing time&lt;/blink&gt; */&lt;br /&gt;               gr.setColor(255,255,255);&lt;br /&gt;               gr.fillRect(1,1,screen.getWidth(),screen.getHeight());&lt;br /&gt;               /**              &lt;blink&gt;end of clearing&lt;/blink&gt; */ &lt;br /&gt;               gr.setColor(0,0,0);&lt;br /&gt;               gr.drawRect(1,1,width,height);&lt;br /&gt;               input_width.setString("");&lt;br /&gt;               input_height.setString("");&lt;br /&gt;               screen.append(rectangle);&lt;br /&gt;            }&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;Compile, Deploy, it's work, that code make me draw a rectangle :D.&lt;br /&gt;&lt;br /&gt;&lt;font style="color:#00FF00;"&gt;updated!&lt;/font&gt;&lt;br /&gt;Hmm, I think I should rename my Application to Drawer. woke, it's done.&lt;br /&gt;Now, i want to make an application that make a String Image. with method drawString() in the graphics class. there it is.&lt;br /&gt;&lt;code&gt;&lt;br /&gt;import javax.microedition.midlet.MIDlet;&lt;br /&gt;import javax.microedition.lcdui.*;&lt;br /&gt;&lt;br /&gt;/**&lt;br /&gt; * Class DrawString - Draw string image&lt;br /&gt; *&lt;br /&gt; * @author     Keenan&lt;br /&gt; * @version    1.0&lt;br /&gt; */&lt;br /&gt;public class DrawString extends MIDlet implements CommandListener&lt;br /&gt;{&lt;br /&gt;&lt;br /&gt;    Form screen;&lt;br /&gt;    Image st;&lt;br /&gt;    TextField input;&lt;br /&gt;    Graphics gr;&lt;br /&gt;&lt;br /&gt;    public DrawString()&lt;br /&gt;    {&lt;br /&gt;       screen = new Form("Draw.. String...");      &lt;br /&gt;       st = Image.createImage(screen.getWidth(),15); // &lt;&lt; string&lt;br /&gt;       gr = st.getGraphics();&lt;br /&gt;       input = new TextField("Input Here","",6+1+6+1+4,TextField.ANY);&lt;br /&gt;       screen.append(input);&lt;br /&gt;       screen.addCommand(new Command("Draw", Command.OK, 0));&lt;br /&gt;       screen.addCommand(new Command("Exit", Command.EXIT, 1));&lt;br /&gt;       screen.setCommandListener(this);&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    public void startApp()&lt;br /&gt;    {&lt;br /&gt;        Display.getDisplay(this).setCurrent(screen);&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    public void pauseApp()&lt;br /&gt;    {&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    public void destroyApp(boolean unconditional)&lt;br /&gt;    {&lt;br /&gt;    }&lt;br /&gt;    &lt;br /&gt;    public void commandAction(Command c, Displayable d)&lt;br /&gt;    {&lt;br /&gt;        if(c.getLabel().equals("Exit"))&lt;br /&gt;           {&lt;br /&gt;                notifyDestroyed();    &lt;br /&gt;           }&lt;br /&gt;           else if(c.getLabel().equals("Draw"))&lt;br /&gt;           {&lt;br /&gt;               Graphics g = st.getGraphics();&lt;br /&gt;               String v = input.getString();&lt;br /&gt;               //screen.delete(1); &lt;&lt; so it's like log message &lt;br /&gt;               g.setColor(255,255,255);&lt;br /&gt;               g.fillRect(0,0,st.getWidth(),st.getHeight());&lt;br /&gt;               g.setColor(0,0,0);&lt;br /&gt;               g.drawString(v, 2,0,Graphics.LEFT|Graphics.TOP);&lt;br /&gt;               input.setString("");&lt;br /&gt;               screen.append(st);&lt;br /&gt;            }   &lt;br /&gt;    }&lt;br /&gt;    &lt;br /&gt;}&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;Compilelalalala, Deploylalala, it works! :D&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2395475804046082519-6057743409729467017?l=the-midp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://the-midp.blogspot.com/feeds/6057743409729467017/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://the-midp.blogspot.com/2008/12/playing-with-graphics.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2395475804046082519/posts/default/6057743409729467017'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2395475804046082519/posts/default/6057743409729467017'/><link rel='alternate' type='text/html' href='http://the-midp.blogspot.com/2008/12/playing-with-graphics.html' title='Playing with Graphics'/><author><name>Keenan</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_9QRrPYjT-xA/SS0NRH1QiNI/AAAAAAAAAAM/_o1LNEPukfM/S220/yeah.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2395475804046082519.post-4079804065457604177</id><published>2008-12-27T06:29:00.000-08:00</published><updated>2008-12-27T06:34:40.308-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mobile'/><category scheme='http://www.blogger.com/atom/ns#' term='midlet'/><category scheme='http://www.blogger.com/atom/ns#' term='midp'/><category scheme='http://www.blogger.com/atom/ns#' term='j2me'/><category scheme='http://www.blogger.com/atom/ns#' term='how to'/><category scheme='http://www.blogger.com/atom/ns#' term='mobile application'/><category scheme='http://www.blogger.com/atom/ns#' term='javame'/><title type='text'>Making a Simple Calculator</title><content type='html'>I want to make a Calculator !&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;...&lt;br /&gt;....&lt;br /&gt;public class MyCalculator extends MIDlet implements CommandListener&lt;br /&gt;{&lt;br /&gt;...&lt;br /&gt;....&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;After that, I preparing for the Item that i want to display in the screen&lt;br /&gt;The item is :&lt;br /&gt;3 TextField for inputing first value, second value, and the result.&lt;br /&gt;1 ChoiceGroup for selecting the operator.&lt;br /&gt;2 Command, one for exit, one for Calc(ulating) :D.&lt;br /&gt;So..&lt;br /&gt;&lt;code&gt;&lt;br /&gt;..&lt;br /&gt;...&lt;br /&gt;private TextField fv = new TextField("First Value", "", 10, TextField.NUMERIC);&lt;br /&gt;   private TextField sv = new TextField("Second Value", "", 10, TextField.NUMERIC);&lt;br /&gt;   private TextField r = new TextField("Result", "", 50, TextField.ANY);&lt;br /&gt;   String cgOperator[] = {"Divide","Times","Add","Subtract"};&lt;br /&gt;   private ChoiceGroup operator = new ChoiceGroup("Operator",ChoiceGroup.EXCLUSIVE, cgOperator, null);&lt;br /&gt;.....&lt;br /&gt;.....&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;And of course, the commandAction() method..&lt;br /&gt;&lt;code&gt;&lt;br /&gt;...&lt;br /&gt;..&lt;br /&gt;public void commandAction(Command c, Displayable d) {&lt;br /&gt;        // If it's our exitCommand, destroy ourselves&lt;br /&gt;        if(c.getLabel().equals("Exit")) {&lt;br /&gt;            notifyDestroyed();&lt;br /&gt;        }else if(c.getLabel().equals("Calc")) {&lt;br /&gt;            int first_value = Integer.parseInt(fv.getString());&lt;br /&gt;            int second_value = Integer.parseInt(sv.getString());&lt;br /&gt;            double result = 0;&lt;br /&gt;            if(operator.isSelected(0))&lt;br /&gt;            {&lt;br /&gt;                result = first_value / second_value;&lt;br /&gt;            }else if(operator.isSelected(1))&lt;br /&gt;            {&lt;br /&gt;                result = first_value * second_value;&lt;br /&gt;            }else if(operator.isSelected(2))&lt;br /&gt;            {&lt;br /&gt;                result = first_value + second_value;&lt;br /&gt;            }else if(operator.isSelected(3))&lt;br /&gt;            {&lt;br /&gt;                result = first_value - second_value;&lt;br /&gt;                &lt;br /&gt;            }&lt;br /&gt;            r.setString(""+result+""); // &lt;&lt;&lt; (i can't parseDouble() it.. :D)&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;...&lt;br /&gt;..&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;Compile it, Deploy it, and I get my MIDlet Calculator !!! yeah&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2395475804046082519-4079804065457604177?l=the-midp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://the-midp.blogspot.com/feeds/4079804065457604177/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://the-midp.blogspot.com/2008/12/making-simple-calculator.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2395475804046082519/posts/default/4079804065457604177'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2395475804046082519/posts/default/4079804065457604177'/><link rel='alternate' type='text/html' href='http://the-midp.blogspot.com/2008/12/making-simple-calculator.html' title='Making a Simple Calculator'/><author><name>Keenan</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_9QRrPYjT-xA/SS0NRH1QiNI/AAAAAAAAAAM/_o1LNEPukfM/S220/yeah.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2395475804046082519.post-8186465537463006434</id><published>2008-12-27T05:19:00.000-08:00</published><updated>2008-12-27T05:20:31.624-08:00</updated><title type='text'>Spam blog ?</title><content type='html'>aaah, my blog is marked by spam by the blogger&lt;br /&gt;maybe that because i updated the blog by the existing post, not create a new blog&lt;br /&gt;haha&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2395475804046082519-8186465537463006434?l=the-midp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://the-midp.blogspot.com/feeds/8186465537463006434/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://the-midp.blogspot.com/2008/12/spam-blog.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2395475804046082519/posts/default/8186465537463006434'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2395475804046082519/posts/default/8186465537463006434'/><link rel='alternate' type='text/html' href='http://the-midp.blogspot.com/2008/12/spam-blog.html' title='Spam blog ?'/><author><name>Keenan</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_9QRrPYjT-xA/SS0NRH1QiNI/AAAAAAAAAAM/_o1LNEPukfM/S220/yeah.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2395475804046082519.post-7155618895201258187</id><published>2008-12-25T19:28:00.000-08:00</published><updated>2008-12-31T01:55:14.299-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mobile'/><category scheme='http://www.blogger.com/atom/ns#' term='midlet'/><category scheme='http://www.blogger.com/atom/ns#' term='midp'/><category scheme='http://www.blogger.com/atom/ns#' term='j2me'/><category scheme='http://www.blogger.com/atom/ns#' term='how to'/><category scheme='http://www.blogger.com/atom/ns#' term='mobile application'/><category scheme='http://www.blogger.com/atom/ns#' term='javame'/><title type='text'>Beginning of all : Making Mobile Application with BlueJ !</title><content type='html'>Hello, my name is Keenan, and i want to learn how to make mobile application. In internet, i always find a great tutorials, great resource, and many more. I do love free, my teacher is internet. For now, I cant making any good mobile application using Java with BlueJ. I want too learn how to make good mobile applications ! I made this blog for posting my progress/improvement of making good mobile application !&lt;br /&gt;&lt;br /&gt;So lets get started. You need JRE, download &lt;a href="http://www.java.com/"&gt;here&lt;/a&gt;.&lt;br /&gt;I'm using BlueJ for this. You can download BlueJ &lt;a href="http://www.bluej.org/download/download.html"&gt;here&lt;/a&gt;.&lt;br /&gt;You need Wireless Toolkit 2.5.2 too ! download &lt;a href="http://java.sun.com/products/sjwtoolkit/download.html"&gt;here&lt;/a&gt;.&lt;br /&gt;That's it, i think that's is what i need.&lt;br /&gt;&lt;br /&gt;I'm ready! did you ?&lt;br /&gt;&lt;br /&gt;Okay, my first step, is searching in the bluej website for j2me. I got it &lt;a href="http://www.bluej.org/JavaME/tutorial.html"&gt;here&lt;/a&gt;. After done reading that page and try they "command". I now can make simple application.&lt;br /&gt;&lt;br /&gt;Now, time to edit the source code, of the Hello MIDlet that I downloaded. After seeking from the javax.microedition.lcdui API (you can see it at WTK 2.5.2 folder(C:\WTK2.5.2_01\docs\api\midp\index.html)). I found an Alert class, maybe i can use it. So, I edited the source code so like this !&lt;br /&gt;&lt;code&gt;&lt;br /&gt;import javax.microedition.midlet.*;&lt;br /&gt;import javax.microedition.lcdui.*;&lt;br /&gt;&lt;br /&gt;/**&lt;br /&gt;* Class Hello - A simple Hello World MIDlet&lt;br /&gt;*&lt;br /&gt;* @author     Ian Utting&lt;br /&gt;* @version    1.0&lt;br /&gt;*/&lt;br /&gt;public class Hello extends MIDlet implements CommandListener&lt;br /&gt;{&lt;br /&gt;   private Form screen;&lt;br /&gt;   private Alert dor = new Alert("DOR !");/**&lt;blink&gt; HERE !&lt;/blink&gt;*/&lt;br /&gt;   private int a; /**&lt;blink&gt;HERE !!!&lt;/blink&gt;*/&lt;br /&gt;&lt;br /&gt;   public Hello()&lt;br /&gt;   {&lt;br /&gt;       screen = new Form("Hello Midlet");&lt;br /&gt;       dor.setTimeout(1500); /**&lt;blink&gt;HERE !!!&lt;/blink&gt;*/&lt;br /&gt;       dor.setString(a + " Times..");  /**&lt;blink&gt;HERE !!!&lt;/blink&gt;*/&lt;br /&gt;       screen.append("Hello small world!");&lt;br /&gt;       screen.addCommand(new Command("Exit", Command.EXIT, 0));&lt;br /&gt;       screen.setCommandListener(this);&lt;br /&gt;   }&lt;br /&gt;   ..............&lt;br /&gt;   .......&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;Hmm, I think to make application, that every time we click button, the alert will show, and print out many times we click that button ! for that, i make a variable called 'a'. And after that...&lt;br /&gt;&lt;code&gt;&lt;br /&gt;...&lt;br /&gt;....&lt;br /&gt;   public void commandAction(Command c, Displayable d) {&lt;br /&gt;       // If it's our exitCommand, destroy ourselves&lt;br /&gt;       if(c.getLabel().equals("Exit")) {&lt;br /&gt;           notifyDestroyed();&lt;br /&gt;       }&lt;br /&gt;       if(c.getLabel().equals("Dor")) {    /**&lt;blink&gt;I add this !!!&lt;/blink&gt;*/&lt;br /&gt;           Display.getDisplay(this).setCurrent(dor);&lt;br /&gt;           a += 1;&lt;br /&gt;           dor.setString( a + " Times..");&lt;br /&gt;       }&lt;br /&gt;   }&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;I compile that, and then deploy. It's Work.&lt;br /&gt;&lt;br /&gt;Now, i want display the clicked times in the form. I think, I will use text field.&lt;br /&gt;I add this to the code&lt;br /&gt;&lt;code&gt;&lt;br /&gt;...&lt;br /&gt;.....&lt;br /&gt;public class Hello extends MIDlet implements CommandListener&lt;br /&gt;{&lt;br /&gt;   private Form screen;&lt;br /&gt;   private TextField tf; /**&lt;blink&gt;HERE !!&lt;/blink&gt;*/&lt;br /&gt;   private int a = 0;&lt;br /&gt;...&lt;br /&gt;...&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;and then, in the Hello constructor&lt;br /&gt;&lt;code&gt;&lt;br /&gt;...&lt;br /&gt;.....&lt;br /&gt;   public Hello()&lt;br /&gt;   {&lt;br /&gt;       screen = new Form("Hello Midlet");&lt;br /&gt;       tf = new TextField("hehe..","Hello small world!",255,TextField.ANY);&lt;br /&gt;       screen.append(tf);&lt;br /&gt;       screen.addCommand(new Command("Exit", Command.EXIT, 0));&lt;br /&gt;       screen.addCommand(new Command("Dor", Command.ITEM, 0));&lt;br /&gt;       screen.setCommandListener(this);&lt;br /&gt;   }&lt;br /&gt;...&lt;br /&gt;..&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;After that, in the command listener.&lt;br /&gt;&lt;code&gt;&lt;br /&gt;public void commandAction(Command c, Displayable d) {&lt;br /&gt;       // If it's our exitCommand, destroy ourselves&lt;br /&gt;       if(c.getLabel().equals("Exit")) {&lt;br /&gt;           notifyDestroyed();&lt;br /&gt;       }&lt;br /&gt;       if(c.getLabel().equals("Dor")) {&lt;br /&gt;           a += 1;&lt;br /&gt;       tf.setString("Hello small world!"+" \n "+ a +" Times :)");&lt;br /&gt;       }&lt;br /&gt;   }&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;Compile, Deploy, It's Work ! :D&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2395475804046082519-7155618895201258187?l=the-midp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://the-midp.blogspot.com/feeds/7155618895201258187/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://the-midp.blogspot.com/2008/12/making-mobile-application-with-bluej.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2395475804046082519/posts/default/7155618895201258187'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2395475804046082519/posts/default/7155618895201258187'/><link rel='alternate' type='text/html' href='http://the-midp.blogspot.com/2008/12/making-mobile-application-with-bluej.html' title='Beginning of all : Making Mobile Application with BlueJ !'/><author><name>Keenan</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_9QRrPYjT-xA/SS0NRH1QiNI/AAAAAAAAAAM/_o1LNEPukfM/S220/yeah.jpg'/></author><thr:total>0</thr:total></entry></feed>
