<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" gd:etag="W/&quot;C0UHQ3o-eip7ImA9WhRWEUk.&quot;"><id>tag:blogger.com,1999:blog-4250178211242030243</id><updated>2011-12-28T22:47:12.452-08:00</updated><category term="juegos" /><category term="aplicacion" /><category term="list" /><category term="sdk" /><category term="emulador" /><category term="noticias" /><category term="lwuit" /><category term="grupo" /><category term="tutorial" /><category term="programacion" /><category term="textfield" /><category term="choicegroup" /><category term="canvas" /><category term="anotador" /><category term="hola mundo" /><category term="keypress" /><category term="ta-te-ti" /><category term="java me" /><category term="form" /><title>Maty Java Me</title><subtitle type="html" /><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://matyjavame.blogspot.com/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://matyjavame.blogspot.com/" /><author><name>Matias Camiletti</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-I3Gcud5X_rE/AAAAAAAAAAI/AAAAAAAABCs/3r_nD5j_fyc/s512-c/photo.jpg" /></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>19</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/MatyJavaMe" /><feedburner:info uri="matyjavame" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry gd:etag="W/&quot;AkcHR3g8eyp7ImA9Wx5RFE8.&quot;"><id>tag:blogger.com,1999:blog-4250178211242030243.post-2695704259027992195</id><published>2010-08-21T14:53:00.000-07:00</published><updated>2010-08-21T15:00:36.673-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-08-21T15:00:36.673-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="java me" /><category scheme="http://www.blogger.com/atom/ns#" term="tutorial" /><category scheme="http://www.blogger.com/atom/ns#" term="programacion" /><category scheme="http://www.blogger.com/atom/ns#" term="canvas" /><category scheme="http://www.blogger.com/atom/ns#" term="keypress" /><title>Interceptar las teclas que se presionan!</title><content type="html">Buenas amigos.&lt;br /&gt;
&lt;br /&gt;
Primero quiero pedirles disculpas, que hace mucho no posteo nada, pero por algunos trabajos no tuve demasiado tiempo.&lt;br /&gt;
&lt;br /&gt;
Hoy veremos como saber que teclas se presionan cuando tenemos en pantalla nuestro propio Canvas.&lt;br /&gt;
&lt;br /&gt;
1 - Creamos nuestro MIDlet:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="brush: java"&gt;public class ClaseSeisMidlet extends MIDlet {

&amp;nbsp;&amp;nbsp; &amp;nbsp;Display pantalla;
&amp;nbsp;&amp;nbsp; &amp;nbsp;boolean inicio = false;

&amp;nbsp;&amp;nbsp; &amp;nbsp;protected void startApp() {
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if(!inicio){

&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pantalla = Display.getDisplay(this);

&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;inicio = true;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&amp;nbsp;&amp;nbsp; &amp;nbsp;}

&amp;nbsp;&amp;nbsp; &amp;nbsp;protected void pauseApp() {

&amp;nbsp;&amp;nbsp; &amp;nbsp;}

&amp;nbsp;&amp;nbsp; &amp;nbsp;protected void destroyApp(boolean unconditional) {
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; 
&amp;nbsp;&amp;nbsp; &amp;nbsp;}

}
&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;2 - Creamos la clase MiCanvas:&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;/div&gt;&lt;pre class="brush: java"&gt;public class MiCanvas extends Canvas {

    protected void paint(Graphics g) {
    }
}
&lt;/pre&gt;&lt;br /&gt;
&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;3 - En este Canvas, dibujaremos un&amp;nbsp;rectángulo, que podremos mover por toda la pantalla. Primero creamos 4 atributos de tipo entero:&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;/div&gt;&lt;pre class="brush: java"&gt;int width;
    int height;
    int x;
    int y;
&lt;/pre&gt;&lt;br /&gt;
&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;4 - Creamos un constructor para inicializar las variables:&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Nota: Para recordar, un Constructor es un&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;método&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&amp;nbsp;que se llama&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;automáticamente&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&amp;nbsp;al momento de crear un nuevo objeto de nuestro clase. Este debe poseer el mismo nombre que la clase.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;/div&gt;&lt;pre class="brush: java"&gt;public MiCanvas() {
        // Seteamos que nuestro Canvas ocupe toda la pantalla
        setFullScreenMode(true);
        // Tamaño de ancho de nuestro rectangulo
        width = 50;
        // Tamaño de alto del rectangulo
        height = 60;
        // Coordenadas donde se dibujara por primera vez
        x = 0;
        y = 0;
    }
&lt;/pre&gt;&lt;br /&gt;
&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;5 - Ya tenemos las medidas, pasamos a dibujar el&amp;nbsp;Rectángulo:&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;/div&gt;&lt;pre class="brush: java"&gt;protected void paint(Graphics g) {
        // Pintamos todo el fondo de blanco
        int colorBlanco = 0xFFFFFF;
        // Ponemos el color que vamos a usar
        g.setColor(colorBlanco);
        // Dibujamos un rectangulo del tamaño de toda la pantalla
        g.fillRect(0, 0, getWidth(), getHeight());

        // Color que usaremos para el rectangulo
        int colorRojo = 0xFF0000;
        g.setColor(colorRojo);
        // Dibujamos el rectangulo
        g.fillRect(x, y, width, height);
}
&lt;/pre&gt;&lt;br /&gt;
&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;6 - Pongamos nuestro Canvas en pantalla, para eso volvemos a nuestra MIDlet:&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;/div&gt;&lt;pre class="brush: java"&gt;public class ClaseSeisMidlet extends MIDlet {
    Display pantalla;
    MiCanvas canvas;
    boolean inicio = false;

    protected void startApp() {
        if(!inicio){

            pantalla = Display.getDisplay(this);

            canvas = new MiCanvas();

            inicio = true;
        }

        pantalla.setCurrent(canvas);
    }

    public void pauseApp() {
    }

    public void destroyApp(boolean unconditional) {
    }
}
&lt;/pre&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;Esto&amp;nbsp;tendría&amp;nbsp;que mostrar algo&amp;nbsp;así:&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_s5JK0NJkvQQ/THBIgXLfjcI/AAAAAAAAAQQ/NOpF-_rz-ro/s1600/1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="200" src="http://3.bp.blogspot.com/_s5JK0NJkvQQ/THBIgXLfjcI/AAAAAAAAAQQ/NOpF-_rz-ro/s200/1.png" width="150" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;7 - Ahora es el momento de hacer que el&amp;nbsp;rectángulo&amp;nbsp;pueda moverse por la pantalla, para escuchar las teclas que se presionan debemos&amp;nbsp;reescribir&amp;nbsp;el&amp;nbsp;método:&amp;nbsp;keyPressed de nuestro Canvas:&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;/div&gt;&lt;pre class="brush: java"&gt;protected void keyPressed(int keyCode) {

}
&lt;/pre&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;8 - Dentro de este&amp;nbsp;método&amp;nbsp;verificaremos que tecla se presiono y haremos lo que corresponda para cada una.&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;/div&gt;&lt;pre class="brush: java"&gt;protected void keyPressed(int keyCode) {
        // getGameAction(keyCode) nos devuelve si se presiono una tecla de juego
        // las teclas de juego son ARRIBA - ABAJO - DERECHA - IZQUIERDA - FIRE
        int key = getGameAction(keyCode);

        switch(key){
            case UP:
                y -= 5;
                break;
            case DOWN:
                y += 5;
                break;
            case LEFT:
                x -= 5;
                break;
            case RIGHT:
                x += 5;
                break;
        }

        repaint();
 }
&lt;/pre&gt;&lt;br /&gt;
&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;Como&amp;nbsp;podrán&amp;nbsp;comprobar con las teclas de&amp;nbsp;dirección&amp;nbsp;podrán&amp;nbsp;mover el&amp;nbsp;rectángulo&amp;nbsp;por la pantalla.&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;Bueno esto ha sido todo por hoy.&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;Saludos...&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;Matias&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;a href="http://www.matydeveloper.com.ar/"&gt;www.matydeveloper.com.ar&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4250178211242030243-2695704259027992195?l=matyjavame.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/quNH7-39CLN67BSwRMMnmvtsMMY/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/quNH7-39CLN67BSwRMMnmvtsMMY/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/quNH7-39CLN67BSwRMMnmvtsMMY/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/quNH7-39CLN67BSwRMMnmvtsMMY/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/MatyJavaMe/~4/UPgQnHGX33U" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://matyjavame.blogspot.com/feeds/2695704259027992195/comments/default" title="Enviar comentarios" /><link rel="replies" type="text/html" href="http://matyjavame.blogspot.com/2010/08/interceptar-las-teclas-que-se-presionan.html#comment-form" title="1 comentarios" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4250178211242030243/posts/default/2695704259027992195?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4250178211242030243/posts/default/2695704259027992195?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MatyJavaMe/~3/UPgQnHGX33U/interceptar-las-teclas-que-se-presionan.html" title="Interceptar las teclas que se presionan!" /><author><name>Matias Camiletti</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-I3Gcud5X_rE/AAAAAAAAAAI/AAAAAAAABCs/3r_nD5j_fyc/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/_s5JK0NJkvQQ/THBIgXLfjcI/AAAAAAAAAQQ/NOpF-_rz-ro/s72-c/1.png" height="72" width="72" /><thr:total>1</thr:total><feedburner:origLink>http://matyjavame.blogspot.com/2010/08/interceptar-las-teclas-que-se-presionan.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkAAQn89eSp7ImA9Wx5TGEQ.&quot;"><id>tag:blogger.com,1999:blog-4250178211242030243.post-4698500624692535035</id><published>2010-08-03T19:59:00.000-07:00</published><updated>2010-08-03T19:59:03.161-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-08-03T19:59:03.161-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="programacion" /><category scheme="http://www.blogger.com/atom/ns#" term="anotador" /><category scheme="http://www.blogger.com/atom/ns#" term="aplicacion" /><title>Anotador de Truco (J2ME)</title><content type="html">&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://matydeveloper.com.ar/images/logoweb.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="83" src="http://matydeveloper.com.ar/images/logoweb.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
Buenas gente.&lt;br /&gt;
&lt;br /&gt;
Hoy les traigo otra&amp;nbsp;aplicación&amp;nbsp;desarrollada en J2ME (Java ME), que es compatible con casi todos los celulares del mercado.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Descripcion&lt;/b&gt;: Seguramente si estan aqui es porque mas de una vez se juntaron entre amigos y se pusieron a jugar al tan famoso juego de cartas, el Truco. Y como nunca hay a mano algo para anotar agarraron el celular y empezaron a anotar ahi. Por este motivo les desarrolle esta aplicacion muy util, un simple contador, que te resolvera ese problema de no tener donde anotar.&lt;br /&gt;
&lt;br /&gt;
&lt;div style="text-align: center;"&gt;&lt;a href="http://matydeveloper.com.ar/anotadordetruco"&gt;&lt;span class="Apple-style-span" style="font-size: x-large;"&gt;Visitar web de Anotador de Truco!&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
Saludos...&lt;br /&gt;
Maty.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4250178211242030243-4698500624692535035?l=matyjavame.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/w7oXuJhtq80hD3DbcGy7wKtVqkQ/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/w7oXuJhtq80hD3DbcGy7wKtVqkQ/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/w7oXuJhtq80hD3DbcGy7wKtVqkQ/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/w7oXuJhtq80hD3DbcGy7wKtVqkQ/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/MatyJavaMe/~4/zuG5gVfy4YU" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://matyjavame.blogspot.com/feeds/4698500624692535035/comments/default" title="Enviar comentarios" /><link rel="replies" type="text/html" href="http://matyjavame.blogspot.com/2010/08/anotador-de-truco-j2me.html#comment-form" title="0 comentarios" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4250178211242030243/posts/default/4698500624692535035?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4250178211242030243/posts/default/4698500624692535035?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MatyJavaMe/~3/zuG5gVfy4YU/anotador-de-truco-j2me.html" title="Anotador de Truco (J2ME)" /><author><name>Matias Camiletti</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-I3Gcud5X_rE/AAAAAAAAAAI/AAAAAAAABCs/3r_nD5j_fyc/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://matyjavame.blogspot.com/2010/08/anotador-de-truco-j2me.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUQFQ3w6fCp7ImA9Wx5TFU0.&quot;"><id>tag:blogger.com,1999:blog-4250178211242030243.post-8073496789602643792</id><published>2010-07-30T09:28:00.000-07:00</published><updated>2010-07-30T09:28:32.214-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-07-30T09:28:32.214-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="java me" /><category scheme="http://www.blogger.com/atom/ns#" term="hola mundo" /><category scheme="http://www.blogger.com/atom/ns#" term="programacion" /><category scheme="http://www.blogger.com/atom/ns#" term="canvas" /><title>Dibujando en Canvas 2</title><content type="html">Hola. Hoy seguiremos mostrando cuales son las&amp;nbsp;demás&amp;nbsp;primitivas&amp;nbsp;gráficas&amp;nbsp;para dibujar.&lt;br /&gt;
&lt;br /&gt;
1 - Ya tenemos nuestra clase que hereda de Canvas y por supuesto nuestro MIDlet:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="brush: java"&gt;import java.io.IOException;
import javax.microedition.lcdui.Canvas;
import javax.microedition.lcdui.Graphics;
import javax.microedition.lcdui.Image;

public class Dibujando extends Canvas {

&amp;nbsp;&amp;nbsp; &amp;nbsp;Image imagen;

&amp;nbsp;&amp;nbsp; &amp;nbsp;public Dibujando() {
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;try {
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;imagen = Image.createImage("/book.png");
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} catch (IOException ex) {
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&amp;nbsp;&amp;nbsp; &amp;nbsp;}

&amp;nbsp;&amp;nbsp; &amp;nbsp;protected void paint(Graphics g) {
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; 
&amp;nbsp;&amp;nbsp; &amp;nbsp;}

}

&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
2 - Como pueden ver en nuestro&amp;nbsp;código&amp;nbsp;hemos creado una imagen para&amp;nbsp;después&amp;nbsp;poder pintarla en pantalla:&lt;br /&gt;
&lt;br /&gt;
Creamos una atributo de tipo Image donde se almacenara la imagen en memoria.&lt;br /&gt;
Dentro del constructor de nuestra clase abrimos la imagen para esto, desde la clase Image tenemos un&amp;nbsp;método:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="brush: java"&gt;Image.createImage("/book.png")&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
Este&amp;nbsp;método&amp;nbsp;recibe como&amp;nbsp;parámetro&amp;nbsp;un String que seria la ruta de la imagen, como nuestra imagen esta en la carpeta&amp;nbsp;raíz&amp;nbsp;del proyecto ponemos "/" si la imagen&amp;nbsp;estaría&amp;nbsp;en la carpeta res seria: "/res/book.png".&lt;br /&gt;
&lt;br /&gt;
Esta&amp;nbsp;instrucción&amp;nbsp;debe ir en un bloque try-catch, ya que esto puede generar un error al no poder encontrar o abrir la imagen.&lt;br /&gt;
&lt;br /&gt;
3 - Ya tenemos nuestra clase y la imagen abierta, empecemos a dibujar:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="brush: java"&gt;// Pintamos todo el fondo de Blanco
g.setColor(0xFFFFFF);
g.fillRect(0, 0, getWidth(), getHeight());
&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
Hemos pintado todo el fondo de la pantalla de blanco. Esto se hace porque en algunos&amp;nbsp;teléfonos, el fondo no se pinta solo y nos dejara lo ultimo que&amp;nbsp;teníamos&amp;nbsp;en pantalla.&lt;br /&gt;
&lt;br /&gt;
4 - Seteamos el color que utilizaremos para dibujar:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="brush: java"&gt;// Ponemos el color en Negro
g.setColor(0x000000);
&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
Así&amp;nbsp;sencillo podemos cambiar de color en cualquier momento.&lt;br /&gt;
&lt;br /&gt;
5 - Dibujando nuestro primer circulo sin relleno:&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="brush: java"&gt;// Dibujando un Circulo sin Relleno
g.drawArc(10, 10, 50, 50, 0, 360);
&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
Este&amp;nbsp;método&amp;nbsp;recibe los mismo&amp;nbsp;parámetros&amp;nbsp;que el fillArc que nos permite dibujar&amp;nbsp;círculos&amp;nbsp;rellenos.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* int x : Coordenada X donde empezar a dibujar el circulo.&lt;br /&gt;
* int y: Coordenada Y donde empezar a dibujar el circulo.&lt;br /&gt;
* int width: Tamaño de ancho del&amp;nbsp;circulo.&lt;br /&gt;
* int height: Tamaño de alto del&amp;nbsp;circulo.&lt;br /&gt;
* int startAngle: El angulo donde comenzara el circulo.&lt;br /&gt;
* int arcAngle: El total hasta donde llegara el circulo.&lt;br /&gt;
&lt;br /&gt;
6 - Dibujamos nuestra imagen:&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="brush: java"&gt;g.drawImage(imagen, 30, 30, Graphics.TOP | Graphics.LEFT);&lt;/pre&gt;&lt;br /&gt;
* Image imagen : Imagen que dibujaremos.&lt;br /&gt;
* int x : Coordenada X donde empezar a dibujar.&lt;br /&gt;
* int y : Coordenada Y donde empezar a dibujar.&lt;br /&gt;
* int anchor : Como se dibujara la imagen.&lt;br /&gt;
&lt;br /&gt;
7 - Dibujar una linea&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="brush: java"&gt;g.drawLine(60, 60, 60, 120);&lt;/pre&gt;&lt;br /&gt;
* int x1 : Coordenada X del punto 1.&lt;br /&gt;
* int y1 : Coordenada Y del punto 1.&lt;br /&gt;
* int x2 : Coordenada X del punto 2.&lt;br /&gt;
* int y2 : Coordenada Y del punto 2.&lt;br /&gt;
&lt;br /&gt;
Aquí se unirán esos dos puntos para formar la linea.&lt;br /&gt;
&lt;br /&gt;
8 - Rectangulo sin relleno.&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="brush: java"&gt;g.drawRect(70, 10, 50, 50);&lt;/pre&gt;&lt;br /&gt;
* int x : Punto del ancho de la pantalla donde empezara a dibujar el rectángulo.&lt;br /&gt;
* int y: Punto del alto de la pantalla donde empezara a dibujar el rectángulo.&lt;br /&gt;
* int width: Tamaño de ancho del rectángulo.&lt;br /&gt;
* int height: Tamaño de alto del rectángulo.&lt;br /&gt;
&lt;br /&gt;
9 - Dibujando Texto.&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="brush: java"&gt;g.drawString("Java ME", 30, 122, Graphics.TOP | Graphics.LEFT);&lt;/pre&gt;&lt;br /&gt;
* String texto : Texto que dibujaremos.&lt;br /&gt;
* int x : Coordenada X.&lt;br /&gt;
* int y : Coordenada Y.&lt;br /&gt;
* int anchor : Como dibujar el texto.&lt;br /&gt;
&lt;br /&gt;
Y así ya tenemos casi todos los métodos que podemos utilizar para dibujar. Como pueden observar son pocos y nada muy complejos, Si quieren dibujar cosas mas avanzadas tendrán que pensar un poquito mas...&lt;br /&gt;
&lt;br /&gt;
Les dejo el codigo completo:&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="brush: java"&gt;import java.io.IOException;
import javax.microedition.lcdui.Canvas;
import javax.microedition.lcdui.Graphics;
import javax.microedition.lcdui.Image;

public class Dibujando extends Canvas {

    Image imagen;

    public Dibujando() {
        try {
            imagen = Image.createImage("/book.png");
        } catch (IOException ex) {
        }
    }

    protected void paint(Graphics g) {
        // Pintamos todo el fondo de Blanco
        g.setColor(0xFFFFFF);
        g.fillRect(0, 0, getWidth(), getHeight());

        // Ponemos el color en Negro
        g.setColor(0x000000);

        // Dibujando un Circulo sin Relleno
        g.drawArc(10, 10, 50, 50, 0, 360);

        // Dibujando un Imagen
        g.drawImage(imagen, 30, 30, Graphics.TOP | Graphics.LEFT);

        // Dibujamos una Linea
        g.drawLine(60, 60, 60, 120);

        // Dibujamos un Rectangulo sin relleno
        g.drawRect(70, 10, 50, 50);

        // Dibujamos un String
        g.drawString("Java ME", 30, 122, Graphics.TOP | Graphics.LEFT);
    }

}
&lt;/pre&gt;&lt;br /&gt;
Saludos&lt;br /&gt;
Maty...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4250178211242030243-8073496789602643792?l=matyjavame.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/5tvXLbShwmcTmcYeztzZJX9b8ZM/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/5tvXLbShwmcTmcYeztzZJX9b8ZM/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/5tvXLbShwmcTmcYeztzZJX9b8ZM/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/5tvXLbShwmcTmcYeztzZJX9b8ZM/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/MatyJavaMe/~4/TCVZ0SuO138" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://matyjavame.blogspot.com/feeds/8073496789602643792/comments/default" title="Enviar comentarios" /><link rel="replies" type="text/html" href="http://matyjavame.blogspot.com/2010/07/dibujando-en-canvas-2.html#comment-form" title="0 comentarios" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4250178211242030243/posts/default/8073496789602643792?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4250178211242030243/posts/default/8073496789602643792?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MatyJavaMe/~3/TCVZ0SuO138/dibujando-en-canvas-2.html" title="Dibujando en Canvas 2" /><author><name>Matias Camiletti</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-I3Gcud5X_rE/AAAAAAAAAAI/AAAAAAAABCs/3r_nD5j_fyc/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://matyjavame.blogspot.com/2010/07/dibujando-en-canvas-2.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUYESH08fSp7ImA9WxFaFkQ.&quot;"><id>tag:blogger.com,1999:blog-4250178211242030243.post-8946759817143944938</id><published>2010-07-20T23:18:00.000-07:00</published><updated>2010-07-20T23:18:29.375-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-07-20T23:18:29.375-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="java me" /><category scheme="http://www.blogger.com/atom/ns#" term="hola mundo" /><category scheme="http://www.blogger.com/atom/ns#" term="tutorial" /><category scheme="http://www.blogger.com/atom/ns#" term="programacion" /><category scheme="http://www.blogger.com/atom/ns#" term="canvas" /><title>Dibujando en Canvas</title><content type="html">Buenas gente, hoy les mostrare como empezar a dibujar en canvas.&lt;br /&gt;
&lt;br /&gt;
1 - Creamos una clase Canvas y la extendemos de Canvas:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="brush: java"&gt;import javax.microedition.lcdui.Canvas;
import javax.microedition.lcdui.Graphics;

public class Dibujando extends Canvas {

&amp;nbsp;&amp;nbsp; &amp;nbsp;protected void paint(Graphics g) {
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; 
&amp;nbsp;&amp;nbsp; &amp;nbsp;}

}
&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
Como ya hemos mostrado la clase Canvas obliga a crear el&amp;nbsp;método&amp;nbsp;paint.&lt;br /&gt;
&lt;br /&gt;
2 - Ya podemos ponernos a dibujar:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="brush: java"&gt;
// Dibujamos un Cuadrado
g.fillRect(10, 10, 100, 100);
// Dibujamos un Rectangulo
g.fillRect(120, 120, 200, 50);

&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
Con el&amp;nbsp;método&amp;nbsp;fillRect dibujamos&amp;nbsp;rectángulos, recibe como&amp;nbsp;parámetros:&lt;br /&gt;
&lt;br /&gt;
* int x : Punto del ancho de la pantalla donde empezara a dibujar el&amp;nbsp;rectángulo.&lt;br /&gt;
* int y: Punto del alto de la pantalla donde empezara a dibujar el&amp;nbsp;rectángulo.&lt;br /&gt;
* int width: Tamaño de ancho del&amp;nbsp;rectángulo.&lt;br /&gt;
* int height: Tamaño de alto del&amp;nbsp;rectángulo.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_s5JK0NJkvQQ/TEaMfZiisrI/AAAAAAAAALs/mkV9QUpTOwU/s1600/1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="200" src="http://4.bp.blogspot.com/_s5JK0NJkvQQ/TEaMfZiisrI/AAAAAAAAALs/mkV9QUpTOwU/s200/1.png" width="151" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="brush: java"&gt;
// Dibujamos un Cuadrado con bordes redondeados
g.fillRoundRect(10, 10, 100, 100, 20, 20);
// Dibujamos un Rectangulo con bordes redondeados
g.fillRoundRect(50, 120, 150, 50, 10, 20);

&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
Para dibujar&amp;nbsp;rectángulos&amp;nbsp;con bordes redondeados usamos fillRoundRect:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;* int x : Punto del ancho de la pantalla donde empezara a dibujar el&amp;nbsp;rectángulo.&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;* int y: Punto del alto de la pantalla donde empezara a dibujar el&amp;nbsp;rectángulo.&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;* int width: Tamaño de ancho del&amp;nbsp;rectángulo.&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;* int height: Tamaño de alto del&amp;nbsp;rectángulo.&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;* int arcWidth: Tamaño del redondeo horizontal&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;* int arcHeight: Tamaño del redondeo vertical&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_s5JK0NJkvQQ/TEaOMR1lviI/AAAAAAAAAL0/IYQcB-CvtEE/s1600/2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="200" src="http://3.bp.blogspot.com/_s5JK0NJkvQQ/TEaOMR1lviI/AAAAAAAAAL0/IYQcB-CvtEE/s200/2.png" width="151" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="brush: java"&gt;
// Dibujando un Triangulo
g.fillTriangle(150, 10, 100, 60, 200, 60);

&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
Aquí&amp;nbsp;dibujamos un triangulo:&lt;br /&gt;
&lt;br /&gt;
* int x1 : La coordenada X del primer&amp;nbsp;vértice.&lt;br /&gt;
* int y1 : La coordenada Y del primer&amp;nbsp;vértice.&lt;br /&gt;
&lt;br /&gt;
&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;* int x2 : La coordenada X del segundo vértice.&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;* int y2 : La coordenada Y del segundo vértice.&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;* int x3 : La coordenada X del tercer vértice.&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;* int y3 : La coordenada Y del tercer vértice.&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_s5JK0NJkvQQ/TEaPM871VrI/AAAAAAAAAL8/wyRiz3f1JWQ/s1600/3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="200" src="http://1.bp.blogspot.com/_s5JK0NJkvQQ/TEaPM871VrI/AAAAAAAAAL8/wyRiz3f1JWQ/s200/3.png" width="151" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="brush: java"&gt;
// Dibujando un Circulo
g.fillArc(10, 10, 90, 90, 0, 360);
// Dibujando medio circulo
g.fillArc(110, 10, 80, 80, 0, 180);
// Dibujando un Pac-Man
g.fillArc(10, 110, 90, 90, 45, 315);

&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
Con el&amp;nbsp;método&amp;nbsp;fillArc podremos dibujar&amp;nbsp;círculos.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;* int x : Coordenada X donde empezar a dibujar el circulo.&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;* int y: Coordenada Y donde empezar a dibujar el circulo.&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;* int width: Tamaño de ancho del&amp;nbsp;circulo.&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;* int height: Tamaño de alto del&amp;nbsp;circulo.&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;* int startAngle: El angulo donde comenzara el circulo.&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;* int arcAngle: El total hasta donde llegara el circulo.&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_s5JK0NJkvQQ/TEaQ94S0LRI/AAAAAAAAAME/tCBFyWuwW_I/s1600/4.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="200" src="http://4.bp.blogspot.com/_s5JK0NJkvQQ/TEaQ94S0LRI/AAAAAAAAAME/tCBFyWuwW_I/s200/4.png" width="151" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;Como&amp;nbsp;verán&amp;nbsp;es muy sencillo dibujar, en la&amp;nbsp;próxima&amp;nbsp;les sigo mostrando que mas podremos hacer con Canvas.&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
Saludos...&lt;br /&gt;
Maty!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4250178211242030243-8946759817143944938?l=matyjavame.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/1sgJwbGxlc2SKIwr4MvE1aAfGnE/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/1sgJwbGxlc2SKIwr4MvE1aAfGnE/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/1sgJwbGxlc2SKIwr4MvE1aAfGnE/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/1sgJwbGxlc2SKIwr4MvE1aAfGnE/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/MatyJavaMe/~4/GhNYXNBrwlo" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://matyjavame.blogspot.com/feeds/8946759817143944938/comments/default" title="Enviar comentarios" /><link rel="replies" type="text/html" href="http://matyjavame.blogspot.com/2010/07/dibujando-en-canvas.html#comment-form" title="1 comentarios" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4250178211242030243/posts/default/8946759817143944938?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4250178211242030243/posts/default/8946759817143944938?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MatyJavaMe/~3/GhNYXNBrwlo/dibujando-en-canvas.html" title="Dibujando en Canvas" /><author><name>Matias Camiletti</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-I3Gcud5X_rE/AAAAAAAAAAI/AAAAAAAABCs/3r_nD5j_fyc/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/_s5JK0NJkvQQ/TEaMfZiisrI/AAAAAAAAALs/mkV9QUpTOwU/s72-c/1.png" height="72" width="72" /><thr:total>1</thr:total><feedburner:origLink>http://matyjavame.blogspot.com/2010/07/dibujando-en-canvas.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0EFR3g4fyp7ImA9WxFaEkQ.&quot;"><id>tag:blogger.com,1999:blog-4250178211242030243.post-6289677430674450575</id><published>2010-07-16T10:00:00.000-07:00</published><updated>2010-07-16T10:00:16.637-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-07-16T10:00:16.637-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="noticias" /><category scheme="http://www.blogger.com/atom/ns#" term="ta-te-ti" /><category scheme="http://www.blogger.com/atom/ns#" term="juegos" /><category scheme="http://www.blogger.com/atom/ns#" term="programacion" /><title>Juego para Java ME(J2ME): Ta-Te-Ti</title><content type="html">&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_s5JK0NJkvQQ/TECMmLmg7DI/AAAAAAAAALE/2Skf_nH5zls/s1600/logo.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_s5JK0NJkvQQ/TECMmLmg7DI/AAAAAAAAALE/2Skf_nH5zls/s320/logo.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;
&lt;/div&gt;Buenas,&amp;nbsp;aquí&amp;nbsp;les presento mi primer juego Mobile. Si un Ta-Te-Ti. ¿Ustedes se preguntaran porque un juego tan simple como este?, la respuesta es muy simple, he descargado varios juegos de Ta-Te-Ti y todos&amp;nbsp;tenían&amp;nbsp;pésimos&amp;nbsp;gráficos, entonces cree el mio un poco mas lindo.&lt;br /&gt;
&lt;br /&gt;
Esta es la primer&amp;nbsp;versión&amp;nbsp;y solo dispone la&amp;nbsp;versión&amp;nbsp;de jugar Humano Vs Humano. En la siguiente&amp;nbsp;versión&amp;nbsp;se&amp;nbsp;incluirá&amp;nbsp;el Juego Vs Computer, con varios niveles de dificultad.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Recomendado para&amp;nbsp;resolución: 240 x 320.&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;br /&gt;
&lt;/b&gt;&lt;br /&gt;
&lt;div style="text-align: center;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: x-large;"&gt;&lt;a href="http://www.box.net/shared/b42mfauxkh"&gt;Descargar Ta-Te-Ti v1.0.0&lt;/a&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;b&gt;&lt;br /&gt;
&lt;/b&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;b&gt;Acepto cualquier sugerencia y opiniones para mejorar el juego.&lt;/b&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;b&gt;&lt;br /&gt;
&lt;/b&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;Imágenes:&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_s5JK0NJkvQQ/TECOoEhfHnI/AAAAAAAAALM/q0FeGB1bQIM/s1600/Screenshot0012.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="200" src="http://2.bp.blogspot.com/_s5JK0NJkvQQ/TECOoEhfHnI/AAAAAAAAALM/q0FeGB1bQIM/s200/Screenshot0012.png" width="150" /&gt;&lt;/a&gt;&lt;a href="http://4.bp.blogspot.com/_s5JK0NJkvQQ/TECOuPWt_wI/AAAAAAAAALU/rqNdPFBhu8Q/s1600/Screenshot0013.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="200" src="http://4.bp.blogspot.com/_s5JK0NJkvQQ/TECOuPWt_wI/AAAAAAAAALU/rqNdPFBhu8Q/s200/Screenshot0013.png" width="150" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_s5JK0NJkvQQ/TECOyikJIRI/AAAAAAAAALc/hHvfX4n5-o8/s1600/Screenshot0015.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="200" src="http://2.bp.blogspot.com/_s5JK0NJkvQQ/TECOyikJIRI/AAAAAAAAALc/hHvfX4n5-o8/s200/Screenshot0015.png" width="150" /&gt;&lt;/a&gt;&lt;a href="http://3.bp.blogspot.com/_s5JK0NJkvQQ/TECO1NcMp0I/AAAAAAAAALk/6CxhpPG-n3o/s1600/Screenshot0016.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="200" src="http://3.bp.blogspot.com/_s5JK0NJkvQQ/TECO1NcMp0I/AAAAAAAAALk/6CxhpPG-n3o/s200/Screenshot0016.png" width="150" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4250178211242030243-6289677430674450575?l=matyjavame.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/dL3M2fxdRlA28oKZZxKBMI_TOCA/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/dL3M2fxdRlA28oKZZxKBMI_TOCA/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/dL3M2fxdRlA28oKZZxKBMI_TOCA/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/dL3M2fxdRlA28oKZZxKBMI_TOCA/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/MatyJavaMe/~4/2_esNqcbNsc" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://matyjavame.blogspot.com/feeds/6289677430674450575/comments/default" title="Enviar comentarios" /><link rel="replies" type="text/html" href="http://matyjavame.blogspot.com/2010/07/juego-para-java-mej2me-ta-te-ti.html#comment-form" title="0 comentarios" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4250178211242030243/posts/default/6289677430674450575?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4250178211242030243/posts/default/6289677430674450575?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MatyJavaMe/~3/2_esNqcbNsc/juego-para-java-mej2me-ta-te-ti.html" title="Juego para Java ME(J2ME): Ta-Te-Ti" /><author><name>Matias Camiletti</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-I3Gcud5X_rE/AAAAAAAAAAI/AAAAAAAABCs/3r_nD5j_fyc/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/_s5JK0NJkvQQ/TECMmLmg7DI/AAAAAAAAALE/2Skf_nH5zls/s72-c/logo.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://matyjavame.blogspot.com/2010/07/juego-para-java-mej2me-ta-te-ti.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0ICQ308fSp7ImA9WxFbFkk.&quot;"><id>tag:blogger.com,1999:blog-4250178211242030243.post-6105754848009217332</id><published>2010-07-08T19:12:00.000-07:00</published><updated>2010-07-08T19:12:42.375-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-07-08T19:12:42.375-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="java me" /><category scheme="http://www.blogger.com/atom/ns#" term="textfield" /><category scheme="http://www.blogger.com/atom/ns#" term="form" /><category scheme="http://www.blogger.com/atom/ns#" term="programacion" /><category scheme="http://www.blogger.com/atom/ns#" term="choicegroup" /><title>Escuchar los cambios en un Formulario</title><content type="html">Hola, ayer un usuario le&amp;nbsp;surgió&amp;nbsp;la duda de como modificar un TextField desde la&amp;nbsp;opción&amp;nbsp;que se elija de un ChoiceGroup y&amp;nbsp;aquí&amp;nbsp;les dejo un pequeño tuto que muestra como realizar cambios a partir de cambios que sufra el formulario, como por ejemplo: el usuario elije una&amp;nbsp;opción&amp;nbsp;de un ChoiceGroup, el usuario escribe en un TextField y cualquier otro cambio que el usuario produzca sobre el formulario.&lt;br /&gt;
&lt;br /&gt;
1- Creamos nuestro MIDlet y creamos un Formulario:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="brush: java"&gt;public class InicioMidlet extends MIDlet {
&amp;nbsp;&amp;nbsp; &amp;nbsp;Display pantalla;
&amp;nbsp;&amp;nbsp; &amp;nbsp;Form formulario;
&amp;nbsp;&amp;nbsp; &amp;nbsp;boolean inicio = false;

&amp;nbsp;&amp;nbsp; &amp;nbsp;public void startApp() {
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if(!inicio){
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pantalla = Display.getDisplay(this);
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;inicio = true;

&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;formulario = new Form("Mi Formulario");
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}

&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pantalla.setCurrent(formulario);
&amp;nbsp;&amp;nbsp; &amp;nbsp;}

&amp;nbsp;&amp;nbsp; &amp;nbsp;public void pauseApp() {
&amp;nbsp;&amp;nbsp; &amp;nbsp;}

&amp;nbsp;&amp;nbsp; &amp;nbsp;public void destroyApp(boolean unconditional) {
&amp;nbsp;&amp;nbsp; &amp;nbsp;}

}

&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
2 - Ahora creamos los items del Formulario, en este caso un TextField y un ChoiceGroup:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="brush: java"&gt;// choice y text,&amp;nbsp;están&amp;nbsp;declarados como atributos



choice = new ChoiceGroup("Choice:", ChoiceGroup.EXCLUSIVE);
choice.append("Opcion A", null);
choice.append("Opcion B", null);
choice.append("Opcion C", null);

text = new TextField("Texto:", "", 30, TextField.ANY);

&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
3 - Agregamos estos items al formulario:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="brush: java"&gt;formulario.append(text);
formulario.append(choice);

&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
4 - Para poder escuchar los cambios en el formulario, nuestra clase debe implementar la interface:&amp;nbsp;ItemStateListener,&amp;nbsp;así&amp;nbsp;que la implementamos en nuestra clase MIDlet:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="brush: java"&gt;public class InicioMidlet extends MIDlet implements ItemStateListener {
&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
5 - Al implementar&amp;nbsp;ItemStateListener, deberemos crear el&amp;nbsp;método:&amp;nbsp;itemStateChanged&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="brush: java"&gt;public void itemStateChanged(Item item) {

}
&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
6 - Ahora le agregamos al formulario que nuestra clase escuchara estos cambios:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="brush: java"&gt;formulario.setItemStateListener(this);&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
7 - Ya tenemos nuestro formulario capaz de escuchar todos los cambios que se produzcan. Si se&amp;nbsp;elije&amp;nbsp;una&amp;nbsp;opción&amp;nbsp;en el ChoiceGroup agregamos un texto predeterminado al TextField entonces:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="brush: java"&gt;// Si el item que cambio fue el ChoiceGroup

if(item == choice){

&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// Segun el item seleccionado en el ChoiceGroup agregamos el texto
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;switch(choice.getSelectedIndex()){
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 0:
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// Si&amp;nbsp;eligió&amp;nbsp;la opcion A escribimos "Lola" en el TextField
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;text.setString("lola");
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 1:
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;// Si&amp;nbsp;eligió&amp;nbsp;la opcion B escribimos "mono" en el TextField
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;text.setString("mono");
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 2:
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;// Si&amp;nbsp;eligió&amp;nbsp;la opcion C escribimos "caso" en el TextField
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;text.setString("caso");
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}

&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
8 -&amp;nbsp;Así&amp;nbsp;podemos escuchar los distintos cambios que se producen en un Formulario. Cualquier duda que tuvieran pueden dejarla&amp;nbsp;aquí&amp;nbsp;o directamente en el Grupo de Java ME.&lt;br /&gt;
&lt;br /&gt;
Codigo Completo:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="brush: java"&gt;public class InicioMidlet extends MIDlet implements ItemStateListener {
&amp;nbsp;&amp;nbsp; &amp;nbsp;Display pantalla;
&amp;nbsp;&amp;nbsp; &amp;nbsp;Form formulario;
&amp;nbsp;&amp;nbsp; &amp;nbsp;ChoiceGroup choice;
&amp;nbsp;&amp;nbsp; &amp;nbsp;TextField text;
&amp;nbsp;&amp;nbsp; &amp;nbsp;boolean inicio = false;

&amp;nbsp;&amp;nbsp; &amp;nbsp;public void startApp() {
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if(!inicio){
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pantalla = Display.getDisplay(this);
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;inicio = true;

&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;choice = new ChoiceGroup("Choice:", ChoiceGroup.EXCLUSIVE);
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;choice.append("Opcion A", null);
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;choice.append("Opcion B", null);
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;choice.append("Opcion C", null);

&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;text = new TextField("Texto:", "", 30, TextField.ANY);

&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;formulario = new Form("Mi Formulario");
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;formulario.setItemStateListener(this);
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;formulario.append(text);
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;formulario.append(choice);
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}

&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pantalla.setCurrent(formulario);
&amp;nbsp;&amp;nbsp; &amp;nbsp;}

&amp;nbsp;&amp;nbsp; &amp;nbsp;public void pauseApp() {
&amp;nbsp;&amp;nbsp; &amp;nbsp;}

&amp;nbsp;&amp;nbsp; &amp;nbsp;public void destroyApp(boolean unconditional) {
&amp;nbsp;&amp;nbsp; &amp;nbsp;}

&amp;nbsp;&amp;nbsp; &amp;nbsp;public void itemStateChanged(Item item) {
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if(item == choice){
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;switch(choice.getSelectedIndex()){
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 0:
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;text.setString("lola");
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 1:
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;text.setString("mono");
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 2:
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;text.setString("caso");
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&amp;nbsp;&amp;nbsp; &amp;nbsp;}

}

&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
Saludos...&lt;br /&gt;
Maty!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4250178211242030243-6105754848009217332?l=matyjavame.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/ejaXYAfuqnofO05LDkcrBoauF2E/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ejaXYAfuqnofO05LDkcrBoauF2E/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/ejaXYAfuqnofO05LDkcrBoauF2E/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ejaXYAfuqnofO05LDkcrBoauF2E/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/MatyJavaMe/~4/uSFXgPrVdaY" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://matyjavame.blogspot.com/feeds/6105754848009217332/comments/default" title="Enviar comentarios" /><link rel="replies" type="text/html" href="http://matyjavame.blogspot.com/2010/07/escuchar-los-cambios-en-un-formulario.html#comment-form" title="2 comentarios" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4250178211242030243/posts/default/6105754848009217332?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4250178211242030243/posts/default/6105754848009217332?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MatyJavaMe/~3/uSFXgPrVdaY/escuchar-los-cambios-en-un-formulario.html" title="Escuchar los cambios en un Formulario" /><author><name>Matias Camiletti</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-I3Gcud5X_rE/AAAAAAAAAAI/AAAAAAAABCs/3r_nD5j_fyc/s512-c/photo.jpg" /></author><thr:total>2</thr:total><feedburner:origLink>http://matyjavame.blogspot.com/2010/07/escuchar-los-cambios-en-un-formulario.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C08BRno-fSp7ImA9WxFbE0s.&quot;"><id>tag:blogger.com,1999:blog-4250178211242030243.post-743177134346424389</id><published>2010-07-05T13:30:00.000-07:00</published><updated>2010-07-05T13:30:57.455-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-07-05T13:30:57.455-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="java me" /><category scheme="http://www.blogger.com/atom/ns#" term="programacion" /><category scheme="http://www.blogger.com/atom/ns#" term="canvas" /><title>Degradado para Java Me</title><content type="html">Hola gente.&amp;nbsp;Aquí&amp;nbsp;les traigo una clase para puedan dibujar degradados en Java ME. Puedes descargarla &lt;a href="http://www.box.net/shared/ef4095d4fr"&gt;haciendo clic&amp;nbsp;&lt;/a&gt;&lt;span class="Apple-style-span" style="color: #0000ee;"&gt;&lt;u&gt;aquí&lt;/u&gt;&lt;/span&gt;. Igual mas abajo les dejo el&amp;nbsp;código.&lt;br /&gt;
&lt;br /&gt;
Con esta clase&amp;nbsp;podrán&amp;nbsp;crear degradados en Canvas, la clase Degradado dispone de un&amp;nbsp;método&amp;nbsp;estático&amp;nbsp;llamado pintar. que recibe como&amp;nbsp;parámetros:&lt;br /&gt;
&lt;br /&gt;
* Graphics g : El objeto que se necesita para dibujar&lt;br /&gt;
* int Color 1 : El color inicial del degradado&lt;br /&gt;
* int Color 2 : El color final del degradado&lt;br /&gt;
* int x : Punto desde donde comenzara el degradado&lt;br /&gt;
* int y : Punto desde donde comenzara el degradado&lt;br /&gt;
* int ancho : El total del ancho del degradado&lt;br /&gt;
* int alto : El Alto del degradado&lt;br /&gt;
* int&amp;nbsp;orientación&amp;nbsp;: La&amp;nbsp;orientación&amp;nbsp;del degradado, puede ser Degradado.HORIZONTAL o Degradado.VERTICAL&lt;br /&gt;
&lt;br /&gt;
les dejo unos ejemplos:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="brush: java"&gt;// Ejemplo 1 - Toda la pantalla de Blanco a Negro
Degradado.pintar(g, 0xFFFFFF, 0x000000, 0, 0, getWidth(), getHeight(), Degradado.HORIZONTAL);
// Ejemplo 2 - Toda la pantalla de Rojo a Negro
Degradado.pintar(g, 0xFF0000, 0x000000, 0, 0, getWidth(), getHeight(), Degradado.VERTICAL);
// Ejemplo 3 - Un cuadrado de 100x100 de Verde a Azul
Degradado.pintar(g, 0x00FF00, 0x0000FF, 10, 10, 100, 100, Degradado.HORIZONTAL);
// Ejemplo 4 - Un cuadrado de 100x100 dibujado en la mitad de la pantalla
Degradado.pintar(g, 0x0000FF, 0xFFFFFF, getWidth()/2-50, getHeight()/2-50, 100, 100, Degradado.VERTICAL);

&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_s5JK0NJkvQQ/TDJAus13VaI/AAAAAAAAAJo/uM_3rw5dXog/s1600/1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_s5JK0NJkvQQ/TDJAus13VaI/AAAAAAAAAJo/uM_3rw5dXog/s320/1.png" /&gt;&lt;/a&gt;&amp;nbsp;&lt;a href="http://3.bp.blogspot.com/_s5JK0NJkvQQ/TDJAy5hf6HI/AAAAAAAAAJw/DOsW4DKFJag/s1600/2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_s5JK0NJkvQQ/TDJAy5hf6HI/AAAAAAAAAJw/DOsW4DKFJag/s320/2.png" /&gt;&lt;/a&gt;&amp;nbsp;&lt;a href="http://2.bp.blogspot.com/_s5JK0NJkvQQ/TDJA1Ug0AXI/AAAAAAAAAJ4/jFRpelQp5VI/s1600/3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_s5JK0NJkvQQ/TDJA1Ug0AXI/AAAAAAAAAJ4/jFRpelQp5VI/s320/3.png" /&gt;&lt;/a&gt;&amp;nbsp;&lt;a href="http://1.bp.blogspot.com/_s5JK0NJkvQQ/TDJA4QU3wQI/AAAAAAAAAKA/-7uPy1ytr9g/s1600/4.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_s5JK0NJkvQQ/TDJA4QU3wQI/AAAAAAAAAKA/-7uPy1ytr9g/s320/4.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
Esta clase es muy&amp;nbsp;útil&amp;nbsp;si quieren darle un mejor aspecto a su&amp;nbsp;aplicación&amp;nbsp;o juego en Java ME. Esta clase ha sido obtenida de &lt;a href="http://forum.nokia.com/"&gt;Forum Nokia&lt;/a&gt;. Yo solo la he traducido.&lt;br /&gt;
&lt;br /&gt;
Código:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="brush: java"&gt;
import javax.microedition.lcdui.Graphics;

public class Degradado {
&amp;nbsp;&amp;nbsp; &amp;nbsp;public static final int HORIZONTAL = 0;
&amp;nbsp;&amp;nbsp; &amp;nbsp;public static final int VERTICAL = 1;

&amp;nbsp;&amp;nbsp; &amp;nbsp;public static void pintar(Graphics g, int color1, int color2, int x, int y, int ancho, int alto, int orientacion){
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;int max;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if(orientacion == HORIZONTAL){
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;max = ancho;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}else{
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;max = alto;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}

&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for (int i = 0; i &amp;lt; max; i++) {
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;int color = midColor(color1, color2, max * (max - 1 - i) / (max - 1), max);
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;g.setColor(color);

&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if(orientacion == HORIZONTAL){
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;g.drawLine(x + i, y, x + i, y + alto - 1);
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}else{
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;g.drawLine(x, y + i, x + ancho - 1, y + i);
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&amp;nbsp;&amp;nbsp; &amp;nbsp;}

&amp;nbsp;&amp;nbsp; &amp;nbsp;protected static int midColor(int color1, int color2, int prop, int max) {
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;int red =
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;(((color1 &amp;gt;&amp;gt; 16) &amp;amp; 0xff) * prop
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ ((color2 &amp;gt;&amp;gt; 16) &amp;amp; 0xff) * (max - prop)) / max;

&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;int green =
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;(((color1 &amp;gt;&amp;gt; 8) &amp;amp; 0xff) * prop
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ ((color2 &amp;gt;&amp;gt; 8) &amp;amp; 0xff) * (max - prop)) / max;

&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;int blue =
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;(((color1 &amp;gt;&amp;gt; 0) &amp;amp; 0xff) * prop
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ ((color2 &amp;gt;&amp;gt; 0) &amp;amp; 0xff) * (max - prop)) / max;

&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;int color = red &amp;lt;&amp;lt; 16 | green &amp;lt;&amp;lt; 8 | blue;

&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return color;
&amp;nbsp;&amp;nbsp; &amp;nbsp;}
}

&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
Saludos...&lt;br /&gt;
Maty!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4250178211242030243-743177134346424389?l=matyjavame.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/ORoOXssDDxYYcPt_WWarImO4FpU/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ORoOXssDDxYYcPt_WWarImO4FpU/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/ORoOXssDDxYYcPt_WWarImO4FpU/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ORoOXssDDxYYcPt_WWarImO4FpU/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/MatyJavaMe/~4/_XjVK9K9z0s" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://matyjavame.blogspot.com/feeds/743177134346424389/comments/default" title="Enviar comentarios" /><link rel="replies" type="text/html" href="http://matyjavame.blogspot.com/2010/07/degradado-para-java-me.html#comment-form" title="0 comentarios" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4250178211242030243/posts/default/743177134346424389?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4250178211242030243/posts/default/743177134346424389?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MatyJavaMe/~3/_XjVK9K9z0s/degradado-para-java-me.html" title="Degradado para Java Me" /><author><name>Matias Camiletti</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-I3Gcud5X_rE/AAAAAAAAAAI/AAAAAAAABCs/3r_nD5j_fyc/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/_s5JK0NJkvQQ/TDJAus13VaI/AAAAAAAAAJo/uM_3rw5dXog/s72-c/1.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://matyjavame.blogspot.com/2010/07/degradado-para-java-me.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkMER38_fyp7ImA9WxFbEEk.&quot;"><id>tag:blogger.com,1999:blog-4250178211242030243.post-7745512729760449177</id><published>2010-07-01T20:11:00.000-07:00</published><updated>2010-07-01T20:13:26.147-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-07-01T20:13:26.147-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="java me" /><category scheme="http://www.blogger.com/atom/ns#" term="hola mundo" /><category scheme="http://www.blogger.com/atom/ns#" term="programacion" /><category scheme="http://www.blogger.com/atom/ns#" term="canvas" /><title>Hola Mundo en Canvas</title><content type="html">Buenas,&amp;nbsp;después&amp;nbsp;de varios&amp;nbsp;días&amp;nbsp;sin actualizar, disculpen fueron&amp;nbsp;días&amp;nbsp;de parciales y no&amp;nbsp;tuve&amp;nbsp;mucho tiempo para poder escribirles...&lt;br /&gt;
&lt;br /&gt;
Hoy les mostrare como iniciar su proyecto a bajo nivel, la forma de crear todo por nosotros mismos.&lt;br /&gt;
&lt;br /&gt;
1 - Primero creamos un proyecto, y creamos un MIDlet&amp;nbsp;vació.&lt;br /&gt;
&lt;br /&gt;
2 - Creamos una Nueva clase de java:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="brush: java"&gt;public class CanvasHolaMundo {

}

&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
3 - Hacemos que nuestra clase herede (extends) de Canvas:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="brush: java"&gt;public class CanvasHolaMundo extends Canvas {

}

&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
Deberán&amp;nbsp;importar la&amp;nbsp;librería: "import javax.microedition.lcdui.Canvas;", como logran ver solo anteponiendo la palabra "extends" y el nombre de la clase ya se logra hacer una herencia.&lt;br /&gt;
&lt;br /&gt;
4 - Al heredar de Canvas esta clase nos obliga a crear un&amp;nbsp;método:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="brush: java"&gt;public class CanvasHolaMundo extends Canvas {

&amp;nbsp;&amp;nbsp; &amp;nbsp;protected void paint(Graphics g) {
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; 
&amp;nbsp;&amp;nbsp; &amp;nbsp;}

}

&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
Este&amp;nbsp;método&amp;nbsp;paint recibe el objeto Graphics que nos&amp;nbsp;permitirá&amp;nbsp;disponer de las primitivas para poder dibujar sobre nuestra pantalla.&lt;br /&gt;
&lt;br /&gt;
5 - Dibujamos ahora "Hola mundo" en la mitad de nuestra pantalla:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="brush: java"&gt;protected void paint(Graphics g) {
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// Obtenemos el ancho de la pantalla y la dividimos para obtener la mitad
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;int mitadAncho = getWidth()/2;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// Obtenemos la mitad de alto de la pantalla
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;int mitadAlto = getHeight()/2;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; 
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;g.drawString("Hola Mundo", mitadAncho, mitadAlto, Graphics.LEFT | Graphics.TOP);
&amp;nbsp;&amp;nbsp; &amp;nbsp;}

&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
Primero obtenemos las medidas de las pantalla (getWidth() y getHeight()) y luego con la clase Graphics disponemos un&amp;nbsp;método&amp;nbsp;"drawString" que nos&amp;nbsp;permitirá dibujar texto. Como&amp;nbsp;parámetros:&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;a) String: El texto que queremos que se escriba&lt;br /&gt;
&amp;nbsp;b) int: El ancho en pixeles donde se dibujara el texto&lt;br /&gt;
&amp;nbsp;c) int: El alto en pixeles donde se dibujara el texto&lt;br /&gt;
&amp;nbsp;d) El modo que se dibujara el texto, en este caso desde la&amp;nbsp;posición&amp;nbsp;que le hemos pasado el texto se dibujara de ese punto hacia la derecha y desde el punto hacia abajo.&lt;br /&gt;
&lt;br /&gt;
6 - Solo nos queda mostrar nuestro Canvas por pantalla:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="brush: java"&gt;import javax.microedition.lcdui.Display;
import javax.microedition.midlet.*;

/**
&amp;nbsp;* @author matias
&amp;nbsp;*/
public class ClaseCuatroMidlet extends MIDlet {
&amp;nbsp;&amp;nbsp; &amp;nbsp;Display pantalla;
&amp;nbsp;&amp;nbsp; &amp;nbsp;CanvasHolaMundo canvas;

&amp;nbsp;&amp;nbsp; &amp;nbsp;public ClaseCuatroMidlet() {
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pantalla = Display.getDisplay(this);
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;canvas = new CanvasHolaMundo();
&amp;nbsp;&amp;nbsp; &amp;nbsp;}

&amp;nbsp;&amp;nbsp; &amp;nbsp;public void startApp() {
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pantalla.setCurrent(canvas);
&amp;nbsp;&amp;nbsp; &amp;nbsp;}

&amp;nbsp;&amp;nbsp; &amp;nbsp;public void pauseApp() {
&amp;nbsp;&amp;nbsp; &amp;nbsp;}

&amp;nbsp;&amp;nbsp; &amp;nbsp;public void destroyApp(boolean unconditional) {
&amp;nbsp;&amp;nbsp; &amp;nbsp;}
}

&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
Sencillo obtenemos el Display para poner en pantalla nuestro canvas,&amp;nbsp;instanciamos&amp;nbsp;nuestro canvas y por ultimo lo mostramos por pantalla.&lt;br /&gt;
&lt;br /&gt;
Muestra:&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_s5JK0NJkvQQ/TC1YcXsGy_I/AAAAAAAAAJc/dr4cSxIKVO0/s1600/1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_s5JK0NJkvQQ/TC1YcXsGy_I/AAAAAAAAAJc/dr4cSxIKVO0/s320/1.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Por ultimo les dejo el&amp;nbsp;código&amp;nbsp;completo del canvas:&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;/div&gt;&lt;br /&gt;
&lt;pre class="brush: java"&gt;import javax.microedition.lcdui.Canvas;
import javax.microedition.lcdui.Graphics;

/**
 *
 * @author matias
 */
public class CanvasHolaMundo extends Canvas {

    protected void paint(Graphics g) {
        // Obtenemos el ancho de la pantalla y la dividimos para obtener la mitad
        int mitadAncho = getWidth()/2;
        // Obtenemos la mitad de alto de la pantalla
        int mitadAlto = getHeight()/2;
        
        g.drawString("Hola Mundo", mitadAncho, mitadAlto, Graphics.LEFT | Graphics.TOP);
    }

}
&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
Todo por hoy, Saludos desde Argentina, esperemos que este&amp;nbsp;Sábado&amp;nbsp;ganemos.&lt;br /&gt;
&lt;br /&gt;
Maty.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4250178211242030243-7745512729760449177?l=matyjavame.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/LtGmikWwVeUZPDODaX1WRkoLmu4/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/LtGmikWwVeUZPDODaX1WRkoLmu4/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/LtGmikWwVeUZPDODaX1WRkoLmu4/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/LtGmikWwVeUZPDODaX1WRkoLmu4/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/MatyJavaMe/~4/0Zg5fIYjT9c" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://matyjavame.blogspot.com/feeds/7745512729760449177/comments/default" title="Enviar comentarios" /><link rel="replies" type="text/html" href="http://matyjavame.blogspot.com/2010/07/hola-mundo-en-canvas.html#comment-form" title="3 comentarios" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4250178211242030243/posts/default/7745512729760449177?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4250178211242030243/posts/default/7745512729760449177?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MatyJavaMe/~3/0Zg5fIYjT9c/hola-mundo-en-canvas.html" title="Hola Mundo en Canvas" /><author><name>Matias Camiletti</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-I3Gcud5X_rE/AAAAAAAAAAI/AAAAAAAABCs/3r_nD5j_fyc/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/_s5JK0NJkvQQ/TC1YcXsGy_I/AAAAAAAAAJc/dr4cSxIKVO0/s72-c/1.png" height="72" width="72" /><thr:total>3</thr:total><feedburner:origLink>http://matyjavame.blogspot.com/2010/07/hola-mundo-en-canvas.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUEMSHw7fSp7ImA9WxFUE0Q.&quot;"><id>tag:blogger.com,1999:blog-4250178211242030243.post-8295865823811557611</id><published>2010-06-24T09:41:00.003-07:00</published><updated>2010-06-24T09:41:29.205-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-06-24T09:41:29.205-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="java me" /><category scheme="http://www.blogger.com/atom/ns#" term="lwuit" /><category scheme="http://www.blogger.com/atom/ns#" term="programacion" /><title>Video de LWUIT</title><content type="html">Les dejo&amp;nbsp;rápido&amp;nbsp;un&amp;nbsp;vídeo&amp;nbsp;donde pueden ver el potencia de la&amp;nbsp;librería&amp;nbsp;mencionada anteriormente...&lt;br /&gt;
&lt;br /&gt;
&lt;object height="344" width="425"&gt;&lt;param name="movie" value="http://www.youtube.com/v/FwaLJQpb7Hc&amp;amp;hl=es_ES&amp;amp;fs=1&amp;amp;color1=0x3a3a3a&amp;amp;color2=0x999999"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/FwaLJQpb7Hc&amp;amp;hl=es_ES&amp;amp;fs=1&amp;amp;color1=0x3a3a3a&amp;amp;color2=0x999999" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;
&lt;br /&gt;
Saludos...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4250178211242030243-8295865823811557611?l=matyjavame.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/NYAgsdPX1T7f8L7X_T802cJfyZY/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/NYAgsdPX1T7f8L7X_T802cJfyZY/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/NYAgsdPX1T7f8L7X_T802cJfyZY/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/NYAgsdPX1T7f8L7X_T802cJfyZY/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/MatyJavaMe/~4/ZgYmTIRerQ4" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://matyjavame.blogspot.com/feeds/8295865823811557611/comments/default" title="Enviar comentarios" /><link rel="replies" type="text/html" href="http://matyjavame.blogspot.com/2010/06/video-de-lwuit.html#comment-form" title="0 comentarios" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4250178211242030243/posts/default/8295865823811557611?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4250178211242030243/posts/default/8295865823811557611?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MatyJavaMe/~3/ZgYmTIRerQ4/video-de-lwuit.html" title="Video de LWUIT" /><author><name>Matias Camiletti</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-I3Gcud5X_rE/AAAAAAAAAAI/AAAAAAAABCs/3r_nD5j_fyc/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://matyjavame.blogspot.com/2010/06/video-de-lwuit.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0UHR345fCp7ImA9WxFUE0U.&quot;"><id>tag:blogger.com,1999:blog-4250178211242030243.post-8987190947062872170</id><published>2010-06-24T07:20:00.000-07:00</published><updated>2010-06-24T07:20:36.024-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-06-24T07:20:36.024-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="java me" /><category scheme="http://www.blogger.com/atom/ns#" term="hola mundo" /><category scheme="http://www.blogger.com/atom/ns#" term="lwuit" /><category scheme="http://www.blogger.com/atom/ns#" term="programacion" /><title>Introducción a LWUIT</title><content type="html">Buenas, hoy les presentare una libreria para Java ME, que mejora notablemente la interfaz de usuario: Lightweight UI Toolkit Library, mejor dicho LWUIT.&lt;br /&gt;
&lt;br /&gt;
Primero para poder utilizar esta&amp;nbsp;librería&amp;nbsp;tendremos que descargarla. &lt;a href="http://java.sun.com/javame/technology/lwuit/"&gt;Hacer clic aqui para descargar&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
Una vez descargada y descomprimida, en cualquier lugar. Procedemos a crear un proyecto nuevo en nuestro NetBeans. y Ingresamos a las propiedades haciendo clic derecho sobre el proyecto:&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_s5JK0NJkvQQ/TCNmJIb7sRI/AAAAAAAAAIc/4HjpoLjH4_Y/s1600/1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_s5JK0NJkvQQ/TCNmJIb7sRI/AAAAAAAAAIc/4HjpoLjH4_Y/s320/1.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
Ingresamos a&amp;nbsp;Librerías&amp;nbsp;y Recursos, y hacemos clic en Agregar Jar/Zip:&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_s5JK0NJkvQQ/TCNmga7mmVI/AAAAAAAAAIk/7PjmV-fJhzw/s1600/2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_s5JK0NJkvQQ/TCNmga7mmVI/AAAAAAAAAIk/7PjmV-fJhzw/s320/2.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
Y buscamos en donde&amp;nbsp;descomprimimos&amp;nbsp;el archivo: LWUIT.jar&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_s5JK0NJkvQQ/TCNm7xwzBCI/AAAAAAAAAIs/XMhTnx1Mwyg/s1600/3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_s5JK0NJkvQQ/TCNm7xwzBCI/AAAAAAAAAIs/XMhTnx1Mwyg/s320/3.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
Hacemos clic en aceptar y ya tendremos disponible la&amp;nbsp;librería&amp;nbsp;para trabajar en nuestro proyecto. Les dejo un pequeño&amp;nbsp;código&amp;nbsp;de muestra para que se fijen si les funciona todo bien:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="brush: java"&gt;
import com.sun.lwuit.Command;
import com.sun.lwuit.Display;
import com.sun.lwuit.Form;
import com.sun.lwuit.Label;
import com.sun.lwuit.animations.CommonTransitions;
import com.sun.lwuit.layouts.BorderLayout;
import javax.microedition.midlet.*;

/**
&amp;nbsp;* @author matias
&amp;nbsp;*/
public class HolaMundoMidlet extends MIDlet &amp;nbsp;{

&amp;nbsp;&amp;nbsp; &amp;nbsp;public void startApp() {
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// Iniciamos el Display
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Display.init(this);
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// Creamos el Formulario Principal
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Form mainForm = new Form("Titulo Formulario");
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// Seteamos el Layout
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;mainForm.setLayout(new BorderLayout());
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// Agregamos un Label en el centro del Layout
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;mainForm.addComponent(BorderLayout.CENTER, new Label("Hola Mundo"));
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// Seteamos una Animacion
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;mainForm.setTransitionOutAnimator(CommonTransitions.createFade(400));
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// Agregamos un Comando
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;mainForm.addCommand(new Command("Salir", 2));
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// Mostramos el Formulario
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;mainForm.show();
&amp;nbsp;&amp;nbsp; &amp;nbsp;}

&amp;nbsp;&amp;nbsp; &amp;nbsp;public void pauseApp() {
&amp;nbsp;&amp;nbsp; &amp;nbsp;}

&amp;nbsp;&amp;nbsp; &amp;nbsp;public void destroyApp(boolean unconditional) {
&amp;nbsp;&amp;nbsp; &amp;nbsp;}
}

&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
Saludos...&lt;br /&gt;
Maty&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4250178211242030243-8987190947062872170?l=matyjavame.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/GHBmiVaEtWhUsTErt7_-QiOPY_8/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/GHBmiVaEtWhUsTErt7_-QiOPY_8/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/GHBmiVaEtWhUsTErt7_-QiOPY_8/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/GHBmiVaEtWhUsTErt7_-QiOPY_8/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/MatyJavaMe/~4/7aeIC4kQ_Vc" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://matyjavame.blogspot.com/feeds/8987190947062872170/comments/default" title="Enviar comentarios" /><link rel="replies" type="text/html" href="http://matyjavame.blogspot.com/2010/06/introduccion-lwuit.html#comment-form" title="0 comentarios" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4250178211242030243/posts/default/8987190947062872170?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4250178211242030243/posts/default/8987190947062872170?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MatyJavaMe/~3/7aeIC4kQ_Vc/introduccion-lwuit.html" title="Introducción a LWUIT" /><author><name>Matias Camiletti</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-I3Gcud5X_rE/AAAAAAAAAAI/AAAAAAAABCs/3r_nD5j_fyc/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/_s5JK0NJkvQQ/TCNmJIb7sRI/AAAAAAAAAIc/4HjpoLjH4_Y/s72-c/1.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://matyjavame.blogspot.com/2010/06/introduccion-lwuit.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEYBRnc5cCp7ImA9WxFUEk4.&quot;"><id>tag:blogger.com,1999:blog-4250178211242030243.post-800623927296344738</id><published>2010-06-22T12:48:00.000-07:00</published><updated>2010-06-22T12:49:17.928-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-06-22T12:49:17.928-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="java me" /><category scheme="http://www.blogger.com/atom/ns#" term="form" /><category scheme="http://www.blogger.com/atom/ns#" term="programacion" /><title>Leyendo los datos del Form</title><content type="html">Buenas, hoy continuaremos nuestro ejemplo: &lt;a href="http://matyjavame.blogspot.com/2010/06/trabajando-con-la-clase-form.html"&gt;Trabajando con la Clase Form&lt;/a&gt;. Ahora le agregamos alguna funcionalidad a nuestro formulario y mostraremos como obtener los datos que el usuario ingrese.&lt;br /&gt;
&lt;br /&gt;
1 - Primero crearemos un atributo de Tipo: Command&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="brush: java"&gt;private Command guardar;&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
2 - Creamos nuestro Comando guardar:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="brush: java"&gt;guardar = new Command("Guardar", Command.OK, 0);&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
La clase Command recibe por&amp;nbsp;parámetros:&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;* Titulo : El nombre del comando&lt;br /&gt;
&amp;nbsp;* Tipo: El tipo de Comando&amp;nbsp;podrás&amp;nbsp;elegir entre:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="brush: java"&gt;Command.BACK
Command.CANCEL
Command.EXIT
Command.HELP
Command.ITEM
Command.OK
Command.SCREEN
Command.STOP
&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
Según&amp;nbsp;tu comando&amp;nbsp;deberás&amp;nbsp;elegir el que mas corresponda con la&amp;nbsp;acción&amp;nbsp;de tu comando.&lt;br /&gt;
&lt;br /&gt;
3 - Ahora tendremos que agregar nuestro comando al formulario, pero primero deberemos implementar la interface de CommandListener a nuestro MIDlet para que pueda recibir los comandos que&amp;nbsp;agreguemos:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="brush: java"&gt;public class ClaseTresMidlet extends MIDlet implements CommandListener
&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
Al implementar esta interface nos&amp;nbsp;pedirá&amp;nbsp;que es necesario que nuestra clase tenga un&amp;nbsp;método:&amp;nbsp;commandAction,&amp;nbsp;así&amp;nbsp;que deberemos crearlo:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="brush: java"&gt;public void commandAction(Command c, Displayable d) {
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; 
}

&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
4 - Ahora agregamos nuestro comando al formulario:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="brush: java"&gt;formulario.setCommandListener(this);
formulario.addCommand(guardar);

&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
Con la primera linea definimos quien&amp;nbsp;responderá&amp;nbsp;por los comandos, en este caso sera nuestra propia clase (o MIDlet), y&amp;nbsp;después&amp;nbsp;en la otra linea agregamos el comando creado anteriormente.&lt;br /&gt;
&lt;br /&gt;
5 - Ya teniendo agregado nuestro comando al formulario lo&amp;nbsp;único&amp;nbsp;que nos queda por realizar son las acciones cuando el usuario seleccione el comando, tendremos que trabajar ahora dentro del&amp;nbsp;método&amp;nbsp;commandAction:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="brush: java"&gt;if(c == guardar){
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// obtenemos lo que se escribio en el TextFIeld
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;campo.getString();
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// Obtenemos la fecha que el usuario introducio
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;fecha.getDate();
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// Devuelve el valor del Gauge
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;volumen.getValue();
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// Devuelve el numero de item seleccionado de la lista
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;lista.getSelectedIndex();
}

&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
Entonces primero comparamos el comando ejecutado con nuestro comando, esto se realiza para saber que comando ejecuto el usuario. Si el comando "c" es igual a "guardar" entonces el usuario hizo clic en el comando guardar, y&amp;nbsp;ahí&amp;nbsp;adentro&amp;nbsp;tendríamos&amp;nbsp;que realizar lo correspondiente con los datos.&lt;br /&gt;
&lt;br /&gt;
6 - Ahora creamos un comando para salir de la&amp;nbsp;aplicación, primero creamos un atributo:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="brush: java"&gt;private Command salir;&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
Creamos el comando:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="brush: java"&gt;salir = new Command("Salir", Command.EXIT, 0);&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
y lo Agregamos al formulario:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="brush: java"&gt;formulario.addCommand(salir);&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
Ahora dentro del&amp;nbsp;método&amp;nbsp;commandAction verificaremos si se ejecuto el comando salir:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="brush: java"&gt;if(c == guardar){
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// obtenemos lo que se escribio en el TextFIeld
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;campo.getString();
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// Obtenemos la fecha que el usuario introducio
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;fecha.getDate();
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// Devuelve el valor del Gauge
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;volumen.getValue();
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// Devuelve el numero de item seleccionado de la lista
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;lista.getSelectedIndex();
}else if(c == salir){
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// salimos de la Aplicacion
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;notifyDestroyed();
}

&lt;/pre&gt;&lt;br /&gt;
Codigo Completo:&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="brush: java"&gt;import javax.microedition.lcdui.*;
import javax.microedition.midlet.*;

/**
 * @author matias
 */
public class ClaseTresMidlet extends MIDlet implements CommandListener {
    private Display pantalla;
    private Form formulario;

    private ChoiceGroup lista;
    private DateField fecha;
    private Gauge volumen;
    private StringItem texto;
    private TextField campo;

    private Command guardar;
    private Command salir;

    public ClaseTresMidlet(){
        pantalla = Display.getDisplay(this);

        guardar = new Command("Guardar", Command.OK, 0);
        salir = new Command("Salir", Command.EXIT, 0);

        formulario = new Form("Mi Formulario");
        formulario.setCommandListener(this);
        formulario.addCommand(guardar);
        formulario.addCommand(salir);

        lista = new ChoiceGroup("Opciones", ChoiceGroup.EXCLUSIVE);
        lista.append("Opcion 1", null);
        lista.append("Opcion 2", null);
        lista.append("Opcion 3", null);
        lista.append("Opcion 4", null);

        fecha = new DateField("Aniversario", DateField.DATE);
        volumen = new Gauge("Volumen", true, 10, 5);
        texto = new StringItem("Mi texto", "USted esta completando nuestro formulario, Gracias");
        campo = new TextField("Nombre", "", 30, TextField.ANY);

        formulario.append(campo);
        formulario.append(lista);
        formulario.append(volumen);
        formulario.append(texto);
        formulario.append(fecha);
    }

    public void startApp() {
        pantalla.setCurrent(formulario);
    }

    public void pauseApp() {
    }

    public void destroyApp(boolean unconditional) {
    }

    public void commandAction(Command c, Displayable d) {
        if(c == guardar){
            // obtenemos lo que se escribio en el TextFIeld
            campo.getString();
            // Obtenemos la fecha que el usuario introducio
            fecha.getDate();
            // Devuelve el valor del Gauge
            volumen.getValue();
            // Devuelve el numero de item seleccionado de la lista
            lista.getSelectedIndex();
        }else if(c == salir){
            // salimos de la Aplicacion
            notifyDestroyed();
        }
    }
}
&lt;/pre&gt;&lt;br /&gt;
Y&amp;nbsp;así&amp;nbsp;podemos obtener los datos que el usuario&amp;nbsp;introduce&amp;nbsp;en el formulario.&lt;br /&gt;
&lt;br /&gt;
Seguiremos con mas tutoriales...&lt;br /&gt;
&lt;br /&gt;
Saludos&lt;br /&gt;
Maty!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4250178211242030243-800623927296344738?l=matyjavame.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/-UYjCYYD0WKN9S1_LemOTPMgSIs/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/-UYjCYYD0WKN9S1_LemOTPMgSIs/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/-UYjCYYD0WKN9S1_LemOTPMgSIs/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/-UYjCYYD0WKN9S1_LemOTPMgSIs/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/MatyJavaMe/~4/26uVZU2WKHw" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://matyjavame.blogspot.com/feeds/800623927296344738/comments/default" title="Enviar comentarios" /><link rel="replies" type="text/html" href="http://matyjavame.blogspot.com/2010/06/leyendo-los-datos-del-form.html#comment-form" title="6 comentarios" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4250178211242030243/posts/default/800623927296344738?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4250178211242030243/posts/default/800623927296344738?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MatyJavaMe/~3/26uVZU2WKHw/leyendo-los-datos-del-form.html" title="Leyendo los datos del Form" /><author><name>Matias Camiletti</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-I3Gcud5X_rE/AAAAAAAAAAI/AAAAAAAABCs/3r_nD5j_fyc/s512-c/photo.jpg" /></author><thr:total>6</thr:total><feedburner:origLink>http://matyjavame.blogspot.com/2010/06/leyendo-los-datos-del-form.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkcNRHk5fip7ImA9WxFVGEQ.&quot;"><id>tag:blogger.com,1999:blog-4250178211242030243.post-4900802102044826558</id><published>2010-06-18T12:40:00.000-07:00</published><updated>2010-06-18T12:41:35.726-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-06-18T12:41:35.726-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="java me" /><category scheme="http://www.blogger.com/atom/ns#" term="grupo" /><title>Grupo Java ME</title><content type="html">&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://groups.google.com.ar/intl/es/images/logos/groups_logo_sm.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://groups.google.com.ar/intl/es/images/logos/groups_logo_sm.gif" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
Buenas Gente!&lt;br /&gt;
&lt;br /&gt;
Quería&amp;nbsp;comentarles que he abierto un grupo de Java ME, para que si tienen alguna duda, comentarla&amp;nbsp;ahí&amp;nbsp;y tratare de ayudarlos...&lt;br /&gt;
&lt;br /&gt;
&lt;div style="text-align: center;"&gt;&lt;a href="http://groups.google.com.ar/group/java-me-argentina"&gt;Visitar y Participar del Grupo Java ME&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
Saludos...&lt;br /&gt;
Maty!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4250178211242030243-4900802102044826558?l=matyjavame.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/FxMH4-ZCkSIgt9XTOBBP_LsIk1Q/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/FxMH4-ZCkSIgt9XTOBBP_LsIk1Q/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/FxMH4-ZCkSIgt9XTOBBP_LsIk1Q/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/FxMH4-ZCkSIgt9XTOBBP_LsIk1Q/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/MatyJavaMe/~4/MJVYRngMZ8A" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://matyjavame.blogspot.com/feeds/4900802102044826558/comments/default" title="Enviar comentarios" /><link rel="replies" type="text/html" href="http://matyjavame.blogspot.com/2010/06/grupo-java-me.html#comment-form" title="0 comentarios" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4250178211242030243/posts/default/4900802102044826558?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4250178211242030243/posts/default/4900802102044826558?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MatyJavaMe/~3/MJVYRngMZ8A/grupo-java-me.html" title="Grupo Java ME" /><author><name>Matias Camiletti</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-I3Gcud5X_rE/AAAAAAAAAAI/AAAAAAAABCs/3r_nD5j_fyc/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://matyjavame.blogspot.com/2010/06/grupo-java-me.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0QBRXw8fCp7ImA9WxFVF08.&quot;"><id>tag:blogger.com,1999:blog-4250178211242030243.post-4906199676663516418</id><published>2010-06-16T14:55:00.000-07:00</published><updated>2010-06-16T14:55:54.274-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-06-16T14:55:54.274-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="java me" /><category scheme="http://www.blogger.com/atom/ns#" term="form" /><category scheme="http://www.blogger.com/atom/ns#" term="programacion" /><title>Trabajando con la Clase Form</title><content type="html">Buenas, Hoy participe de un webinar de Nokia con &lt;a href="http://www.firt.com.ar/"&gt;Maximiliano Firtman&lt;/a&gt; (Desarrollador Mobile desde 2000), Fernando Freytes (Nokia Argentina) y Robert (de Forum Nokia Internacional).&amp;nbsp;Donde maxi nos comentaba que muchos consideraban a Java ME una plataforma muerta, porque ya hace mas de 10 años que se encuentra en el mercado, pero &lt;b&gt;¿ podemos considerar muerta a una plataforma que tiene soporte en mas de mil millones de&amp;nbsp;móviles&amp;nbsp;en el mercado actualmente ?&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;br /&gt;
&lt;/b&gt;&lt;br /&gt;
Sin dudarlo si quieres que tu&amp;nbsp;aplicación&amp;nbsp;se encuentre para la mayor cantidad posible de&amp;nbsp;móviles,&amp;nbsp;tendrás&amp;nbsp;que utilizar Java ME ;)&lt;br /&gt;
&lt;br /&gt;
Así&amp;nbsp;que hoy veremos como usar la clase &lt;b&gt;Form&lt;/b&gt;.&lt;br /&gt;
&lt;br /&gt;
1 - Como siempre lo primero que haremos es crear nuestro MIDlet, y obtener nuestro objeto pantalla:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="brush: java"&gt;import javax.microedition.lcdui.*;
import javax.microedition.midlet.*;

/**
&amp;nbsp;* @author matias
&amp;nbsp;*/
public class ClaseTresMidlet extends MIDlet {
&amp;nbsp;&amp;nbsp; &amp;nbsp;private Display pantalla;

&amp;nbsp;&amp;nbsp; &amp;nbsp;public ClaseTresMidlet(){
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pantalla = Display.getDisplay(this);
&amp;nbsp;&amp;nbsp; &amp;nbsp;}

&amp;nbsp;&amp;nbsp; &amp;nbsp;public void startApp() {
&amp;nbsp;&amp;nbsp; &amp;nbsp;}

&amp;nbsp;&amp;nbsp; &amp;nbsp;public void pauseApp() {
&amp;nbsp;&amp;nbsp; &amp;nbsp;}

&amp;nbsp;&amp;nbsp; &amp;nbsp;public void destroyApp(boolean unconditional) {
&amp;nbsp;&amp;nbsp; &amp;nbsp;}
}

&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
2 - Primero creamos un atributo de tipo Form:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="brush: java"&gt;private Display pantalla;
private Form formulario;
&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
3 - ahora dentro de nuestro Constructor, crearemos nuestro formulario:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="brush: java"&gt;formulario = new Form("Mi Formulario");
&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
La Clase Form tiene 2 constructores:&lt;br /&gt;
a) Que recibe solo el Titulo del formulario (es el que utilizaremos)&lt;br /&gt;
b) Ademas del titulo recibe un array de Items.&lt;br /&gt;
&lt;br /&gt;
Ahora les dejare un pequeña&amp;nbsp;introducción&amp;nbsp;de todos los Items que podemos crear para agregar dentro del formulario:&lt;br /&gt;
&lt;br /&gt;
* ChoiceGroup = Una lista igual que las listas Exclusivas y PopUp, que vimos en entradas anteriores.&lt;br /&gt;
* DateField = Un campo para ingresar una fecha&lt;br /&gt;
* Gauge = Un slider.&lt;br /&gt;
* ImageItem = Podemos&amp;nbsp;también&amp;nbsp;agregar&amp;nbsp;imágenes&amp;nbsp;dentro de nuestro formulario.&lt;br /&gt;
* StringItem = Un texto.&lt;br /&gt;
* TextField = Un campo para ingresar texto. Identico al TextBox pero este se puede agregar al formulario.&lt;br /&gt;
&lt;br /&gt;
4 - Bueno ahora iremos creando uno de cada uno para mostrarles como se crea cada uno,&amp;nbsp;acuérdate&amp;nbsp;que cada elemento que crearemos, primero crearemos un atributo.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="brush: java"&gt;lista = new ChoiceGroup("Opciones", ChoiceGroup.EXCLUSIVE);
lista.append("Opcion 1", null);
lista.append("Opcion 2", null);
lista.append("Opcion 3", null);
lista.append("Opcion 4", null);
&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
El primer item que hemos creado a sido una lista, como ven es&amp;nbsp;idéntico&amp;nbsp;al &lt;a href="http://matyjavame.blogspot.com/2010/06/creando-un-menu-principal.html"&gt;List&lt;/a&gt;. El ChoiceGroup recibe como&amp;nbsp;parámetro&amp;nbsp;el Titulo y el Tipo de Lista (Exclusive, Multiple, PopUp). Y para agregar opciones a la lista tenemos el&amp;nbsp;método&amp;nbsp;"append" que recibe el texto y una imagen, que como no queremos usar&amp;nbsp;imágenes, dejamos el campo en null.&lt;br /&gt;
&lt;br /&gt;
Ahora creamos un DateField:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="brush: java"&gt;fecha = new DateField("Aniversario", DateField.DATE);&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
El DateField recibe como&amp;nbsp;parámetros:&lt;br /&gt;
&lt;br /&gt;
* Titulo = String&lt;br /&gt;
* Tipo de Fecha, que podremos usar:&amp;nbsp;DateField.DATE (Dia, Mes, Año).&amp;nbsp;DateField.DATE_TIME (Dia, Mes, Año, Hora y Minutos) y&amp;nbsp;DateField.TIME (Hora y minutos).&lt;br /&gt;
&lt;br /&gt;
Procedemos a crear un Slider (Gauge):&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="brush: java"&gt;volumen = new Gauge("Volumen", true, 10, 5);&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
Parámetros&amp;nbsp;que recibe el Gauge:&lt;br /&gt;
&lt;br /&gt;
* Titulo del item (String)&lt;br /&gt;
* Si nuestro control sera&amp;nbsp;interactivo&amp;nbsp;(True) o si solo se mostrara sin poder modificarse (False).&lt;br /&gt;
* El valor&amp;nbsp;máximo&amp;nbsp;permitido.&lt;br /&gt;
* El valor inicial, en donde se encontrara posicionado al momento de crearse.&lt;br /&gt;
&lt;br /&gt;
Nos toca la hora de crear un StringItem:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="brush: java"&gt;texto = new StringItem("Mi texto", "USted esta completando nuestro formulario, Gracias");&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
Muy sencillo, nuestro StringItem recibe como&amp;nbsp;parámetro&amp;nbsp;un titulo y el texto que se mostrara.&lt;br /&gt;
&lt;br /&gt;
Por ultimo creamos un TextField:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="brush: java"&gt;campo = new TextField("Nombre", "", 30, TextField.ANY);&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
Lo detallamos&amp;nbsp;rápido&amp;nbsp;ya que es&amp;nbsp;idéntico&amp;nbsp;al &lt;a href="http://matyjavame.blogspot.com/2010/06/comenzando-con-java-me.html"&gt;TextBox&lt;/a&gt;. Puedes leer nuestro post anterior si&amp;nbsp;todavía&amp;nbsp;no lo has&amp;nbsp;leído&amp;nbsp;;).&lt;br /&gt;
Primero el titulo de nuestro Campo para introducir texto, el segundo&amp;nbsp;parámetro&amp;nbsp;es un valor predefinido, normalmente no se pone nada, es un poco molesto para el usuario tener que borrar lo que halla escrito para empezar a introducir texto.&amp;nbsp;Después&amp;nbsp;el total de Caracteres y por ultimo el tipo de caracteres que se&amp;nbsp;permitirá. ( Mas info leer nuestro post: &lt;a href="http://matyjavame.blogspot.com/2010/06/comenzando-con-java-me.html"&gt;Comenzando con Java ME&lt;/a&gt;)&lt;br /&gt;
&lt;br /&gt;
La imagen la dejamos, para un futuro post,&amp;nbsp;así&amp;nbsp;vemos como se trabaja con las&amp;nbsp;imágenes&amp;nbsp;en Java Me.&lt;br /&gt;
&lt;br /&gt;
5 - Nuestro&amp;nbsp;próximo&amp;nbsp;paso sera agregar todos estos items a nuestro formulario:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="brush: java"&gt;formulario.append(campo);
formulario.append(lista);
formulario.append(volumen);
formulario.append(texto);
formulario.append(fecha);
&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
Así&amp;nbsp;de sencillo nuestro formulario tiene un&amp;nbsp;método&amp;nbsp;"append" para agregar los items.&lt;br /&gt;
&lt;br /&gt;
6 - Ahora dentro de nuestro&amp;nbsp;método&amp;nbsp;startApp mostraremos este formulario:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="brush: java"&gt;pantalla.setCurrent(formulario);&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_s5JK0NJkvQQ/TBlHlDkuPbI/AAAAAAAAAH0/VqRHiB-mi-k/s1600/1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_s5JK0NJkvQQ/TBlHlDkuPbI/AAAAAAAAAH0/VqRHiB-mi-k/s320/1.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
Esto ha sido todo por hoy, la&amp;nbsp;próxima&amp;nbsp;les mostrare como poder obtener los datos ingresados por el usuario y como interactuar con ellos.&lt;br /&gt;
&lt;br /&gt;
Les dejo el&amp;nbsp;Código&amp;nbsp;Completo:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="brush: java"&gt;import javax.microedition.lcdui.*;
import javax.microedition.midlet.*;

/**
&amp;nbsp;* @author matias
&amp;nbsp;*/
public class ClaseTresMidlet extends MIDlet {
&amp;nbsp;&amp;nbsp; &amp;nbsp;private Display pantalla;
&amp;nbsp;&amp;nbsp; &amp;nbsp;private Form formulario;

&amp;nbsp;&amp;nbsp; &amp;nbsp;private ChoiceGroup lista;
&amp;nbsp;&amp;nbsp; &amp;nbsp;private DateField fecha;
&amp;nbsp;&amp;nbsp; &amp;nbsp;private Gauge volumen;
&amp;nbsp;&amp;nbsp; &amp;nbsp;private StringItem texto;
&amp;nbsp;&amp;nbsp; &amp;nbsp;private TextField campo;

&amp;nbsp;&amp;nbsp; &amp;nbsp;public ClaseTresMidlet(){
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pantalla = Display.getDisplay(this);

&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;formulario = new Form("Mi Formulario");

&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;lista = new ChoiceGroup("Opciones", ChoiceGroup.EXCLUSIVE);
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;lista.append("Opcion 1", null);
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;lista.append("Opcion 2", null);
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;lista.append("Opcion 3", null);
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;lista.append("Opcion 4", null);

&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;fecha = new DateField("Aniversario", DateField.DATE);
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;volumen = new Gauge("Volumen", true, 10, 5);
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;texto = new StringItem("Mi texto", "USted esta completando nuestro formulario, Gracias");
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;campo = new TextField("Nombre", "", 30, TextField.ANY);

&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;formulario.append(campo);
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;formulario.append(lista);
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;formulario.append(volumen);
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;formulario.append(texto);
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;formulario.append(fecha);
&amp;nbsp;&amp;nbsp; &amp;nbsp;}

&amp;nbsp;&amp;nbsp; &amp;nbsp;public void startApp() {
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pantalla.setCurrent(formulario);
&amp;nbsp;&amp;nbsp; &amp;nbsp;}

&amp;nbsp;&amp;nbsp; &amp;nbsp;public void pauseApp() {
&amp;nbsp;&amp;nbsp; &amp;nbsp;}

&amp;nbsp;&amp;nbsp; &amp;nbsp;public void destroyApp(boolean unconditional) {
&amp;nbsp;&amp;nbsp; &amp;nbsp;}
}

&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
Saludos&lt;br /&gt;
Maty...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4250178211242030243-4906199676663516418?l=matyjavame.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/xA-P4hVGmmKh3iMKhDJTkdMqhzs/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/xA-P4hVGmmKh3iMKhDJTkdMqhzs/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/xA-P4hVGmmKh3iMKhDJTkdMqhzs/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/xA-P4hVGmmKh3iMKhDJTkdMqhzs/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/MatyJavaMe/~4/iHKk3jh372o" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://matyjavame.blogspot.com/feeds/4906199676663516418/comments/default" title="Enviar comentarios" /><link rel="replies" type="text/html" href="http://matyjavame.blogspot.com/2010/06/trabajando-con-la-clase-form.html#comment-form" title="0 comentarios" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4250178211242030243/posts/default/4906199676663516418?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4250178211242030243/posts/default/4906199676663516418?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MatyJavaMe/~3/iHKk3jh372o/trabajando-con-la-clase-form.html" title="Trabajando con la Clase Form" /><author><name>Matias Camiletti</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-I3Gcud5X_rE/AAAAAAAAAAI/AAAAAAAABCs/3r_nD5j_fyc/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/_s5JK0NJkvQQ/TBlHlDkuPbI/AAAAAAAAAH0/VqRHiB-mi-k/s72-c/1.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://matyjavame.blogspot.com/2010/06/trabajando-con-la-clase-form.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEYDSXY7fCp7ImA9WxFVE0g.&quot;"><id>tag:blogger.com,1999:blog-4250178211242030243.post-6151673997498552356</id><published>2010-06-12T08:22:00.000-07:00</published><updated>2010-06-12T08:22:58.804-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-06-12T08:22:58.804-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="java me" /><category scheme="http://www.blogger.com/atom/ns#" term="programacion" /><category scheme="http://www.blogger.com/atom/ns#" term="list" /><title>Creando un Menú Principal</title><content type="html">Hoy un ejemplo de como crear un&amp;nbsp;menú&amp;nbsp;principal donde el usuario&amp;nbsp;podrá&amp;nbsp;navegar desde&amp;nbsp;allí.&lt;br /&gt;
&lt;br /&gt;
Lo primero es crear nuestro MIDlet, si&amp;nbsp;todavía&amp;nbsp;no conoces esto, te recomiendo que visites: &lt;a href="http://matyjavame.blogspot.com/2010/06/hola-mundo-con-java-me.html"&gt;Hola Mundo con Java ME&lt;/a&gt;&amp;nbsp;y &lt;a href="http://matyjavame.blogspot.com/2010/06/comenzando-con-java-me.html"&gt;Comenzando con Java ME&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
1 - Como toda&amp;nbsp;aplicación&amp;nbsp;en Java Me, primero creamos un atributo, Display y obtenemos la pantalla:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="brush: java"&gt;Display pantalla;
&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp; &amp;nbsp;public void startApp() {
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pantalla = Display.getDisplay(this);
&amp;nbsp;&amp;nbsp; &amp;nbsp;}
&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
2 - Ahora creamos un atributo List y creamos una Lista Implicita:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="brush: java"&gt;Display pantalla;
&amp;nbsp;&amp;nbsp; &amp;nbsp;List menu;
&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp; &amp;nbsp;public void startApp() {
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pantalla = Display.getDisplay(this);
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; 
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;menu = new List("Menu Principal", List.IMPLICIT);
&amp;nbsp;&amp;nbsp; &amp;nbsp;}
&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
3 - Nos toca el turno de agregar los elementos a la lista, que&amp;nbsp;serán&amp;nbsp;nuestros items del&amp;nbsp;menú&amp;nbsp;Principal y mostrar este&amp;nbsp;menú&amp;nbsp;por pantalla:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="brush: java"&gt;menu = new List("Menu Principal", List.IMPLICIT);
menu.append("Iniciar Juego", null);
menu.append("Cargar Partida", null);
menu.append("Configuraciones", null);
menu.append("Ayuda", null);
menu.append("Salir", null);

pantalla.setCurrent(menu);
&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
4 - Ya tenemos nuestro&amp;nbsp;menú&amp;nbsp;principal creado, pero&amp;nbsp;todavía&amp;nbsp;no tiene&amp;nbsp;ninguna&amp;nbsp;interacción, tendremos que obtener de alguna manera, el evento cuando el usuario hace clic en&amp;nbsp;algún&amp;nbsp;item del&amp;nbsp;menú, para realizar esto debemos decirle al&amp;nbsp;menú&amp;nbsp;que intercepte este evento, esto lo hacemos:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="brush: java"&gt;menu.setCommandListener(this);
&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
Este&amp;nbsp;método&amp;nbsp;configurara la clase que manejara este evento, normalmente se pone que la misma clase maneje el evento, pero&amp;nbsp;podrían&amp;nbsp;hacer que cualquier clase lo realice.&lt;br /&gt;
&lt;br /&gt;
5 - Pero al escribir esa linea nos tirara error, es porque la clase para manejar eventos debe implementar la interface:&amp;nbsp;CommandListener:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="brush: java"&gt;public class ClaseDosMidlet extends MIDlet implements CommandListener {

}
&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
Solo debemos agregar implements, que se utiliza para implementar interfaces y el nombre de la clase que maneja el evento.&lt;br /&gt;
&lt;br /&gt;
6 -&amp;nbsp;Todavía&amp;nbsp;siguen apareciendo errores, esto se debe a que a implementar una interface, esta contiene&amp;nbsp;métodos&amp;nbsp;obligatorios que debemos escribir,&amp;nbsp;así&amp;nbsp;que escribimos el siguiente&amp;nbsp;método:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="brush: java"&gt;public void commandAction(Command c, Displayable d) {
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; 
}
&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
Este metodo recibe por parametros:&lt;br /&gt;
&lt;br /&gt;
* Command c : devuelve el comando que ha sido ejecutado.&lt;br /&gt;
* Displayable d : devuelve el objeto que se encontraba en pantalla en el momento que se realizo el evento.&lt;br /&gt;
&lt;br /&gt;
7 -&amp;nbsp;Así&amp;nbsp;que dentro de commandAction, debemos primero preguntar si cuando se realizo el evento fue desde el&amp;nbsp;menú, solo hacemos un if comparando el&amp;nbsp;parámetro&amp;nbsp;Displayable con nuestro&amp;nbsp;menú. Y dentro de el un switch del&amp;nbsp;menú&amp;nbsp;y&amp;nbsp;según&amp;nbsp;que&amp;nbsp;opción&amp;nbsp;selecciono el usuario realizara lo que corresponda:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="brush: java"&gt;public void commandAction(Command c, Displayable d) {
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if(menu == d){
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;switch(menu.getSelectedIndex()){
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 0:
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// Iniciar Juego
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 1:
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// Cargar Partidas
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 2:
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;List nivel = new List("Elegir nivel", List.EXCLUSIVE);
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;nivel.append("Nivel 1", null);
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;nivel.append("Nivel 2", null);
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;nivel.append("Nivel 3", null);
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;nivel.append("Nivel 4", null);
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;nivel.append("Nivel 5", null);

&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pantalla.setCurrent(nivel);
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 3:
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// Ayuda
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 4:
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// Salimos de la Aplicacion
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;notifyDestroyed();
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&amp;nbsp;&amp;nbsp; &amp;nbsp;}
&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
como pueden observar el switch, se realiza del case 0 al case 4, porque en nuestro&amp;nbsp;menú&amp;nbsp;solo existen 5 elementos,&amp;nbsp;así&amp;nbsp;que eso depende de la cantidad de opciones en el&amp;nbsp;menú.&lt;br /&gt;
Dentro de cada Case, podemos hacer lo que sea,&amp;nbsp;aquí&amp;nbsp;le dejamos un pequeño ejemplo de como mostrar otro&amp;nbsp;menú&amp;nbsp;para seleccionar el nivel.&lt;br /&gt;
&lt;br /&gt;
8 - Pero hay un problema al entrar a la&amp;nbsp;opción&amp;nbsp;Configuraciones que nos muestra el&amp;nbsp;menú&amp;nbsp;para elegir el nivel, no podemos volver al&amp;nbsp;menú&amp;nbsp;principal,&amp;nbsp;así&amp;nbsp;que lo primero sera crear un atributo:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="brush: java"&gt;Command volver;&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
Y dentro de startApp(): creamos nuestro&amp;nbsp;comando&amp;nbsp;volver:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="brush: java"&gt;volver = new Command("Volver", Command.BACK, 0);&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
La clase Command recibe por&amp;nbsp;parámetro:&lt;br /&gt;
&lt;br /&gt;
* Titulo : El titulo del comando&lt;br /&gt;
* Tipo: El tipo de Comando, se pueden elegir:&lt;br /&gt;
&lt;br /&gt;
Command.BACK&lt;br /&gt;
Command.CANCEL&lt;br /&gt;
Command.EXIT&lt;br /&gt;
Command.HELP&lt;br /&gt;
Command.ITEM&lt;br /&gt;
Command.OK&lt;br /&gt;
Command.SCREEN&lt;br /&gt;
Command.STOP&lt;br /&gt;
&lt;br /&gt;
* Prioridad : el nivel de prioridad&lt;br /&gt;
&lt;br /&gt;
Nos queda setear a la lista nivel que se manejen los eventos y agregar nuestro comando volver:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="brush: java"&gt;nivel.setCommandListener(this);
nivel.addCommand(volver);
&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
Desde ahora nuestro lista nivel, mostrara por pantalla el comando volver, pero&amp;nbsp;todavía&amp;nbsp;no realiza&amp;nbsp;ninguna&amp;nbsp;acción.&lt;br /&gt;
&lt;br /&gt;
9 - Vamos a darle una&amp;nbsp;acción&amp;nbsp;al comando volver, nos dirigimos al&amp;nbsp;método&amp;nbsp;commandAction: y comparamos si el comando que se presiono es el comando volver:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="brush: java"&gt;if(volver == c){
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;pantalla.setCurrent(menu);
}
&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
Si el comando que se presiono es igual al comando volver, entonces volvemos a mostrar el&amp;nbsp;menú&amp;nbsp;principal.&lt;br /&gt;
&lt;br /&gt;
Y&amp;nbsp;así&amp;nbsp;pudimos crear nuestro&amp;nbsp;menú&amp;nbsp;principal y manejar sus eventos.&lt;br /&gt;
&lt;br /&gt;
Codigo Completo:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="brush: java"&gt;import javax.microedition.lcdui.*;
import javax.microedition.midlet.*;

/**
&amp;nbsp;* @author matias
&amp;nbsp;*/
public class ClaseDosMidlet extends MIDlet implements CommandListener {
&amp;nbsp;&amp;nbsp; &amp;nbsp;Display pantalla;
&amp;nbsp;&amp;nbsp; &amp;nbsp;List menu;
&amp;nbsp;&amp;nbsp; &amp;nbsp;Command volver;

&amp;nbsp;&amp;nbsp; &amp;nbsp;public void startApp() {
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pantalla = Display.getDisplay(this);

&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;volver = new Command("Volver", Command.BACK, 0);

&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;menu = new List("Menu Principal", List.IMPLICIT);
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;menu.append("Iniciar Juego", null);
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;menu.append("Cargar Partida", null);
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;menu.append("Configuraciones", null);
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;menu.append("Ayuda", null);
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;menu.append("Salir", null);
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; 
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;menu.setCommandListener(this);

&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pantalla.setCurrent(menu);
&amp;nbsp;&amp;nbsp; &amp;nbsp;}

&amp;nbsp;&amp;nbsp; &amp;nbsp;public void pauseApp() {
&amp;nbsp;&amp;nbsp; &amp;nbsp;}

&amp;nbsp;&amp;nbsp; &amp;nbsp;public void destroyApp(boolean unconditional) {
&amp;nbsp;&amp;nbsp; &amp;nbsp;}

&amp;nbsp;&amp;nbsp; &amp;nbsp;public void commandAction(Command c, Displayable d) {
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if(volver == c){
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pantalla.setCurrent(menu);
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}else if(menu == d){
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;switch(menu.getSelectedIndex()){
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 0:
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// Iniciar Juego
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 1:
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// Cargar Partidas
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 2:
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;List nivel = new List("Elegir nivel", List.EXCLUSIVE);
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;nivel.append("Nivel 1", null);
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;nivel.append("Nivel 2", null);
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;nivel.append("Nivel 3", null);
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;nivel.append("Nivel 4", null);
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;nivel.append("Nivel 5", null);

&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;nivel.setCommandListener(this);
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;nivel.addCommand(volver);

&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pantalla.setCurrent(nivel);
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 3:
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// Ayuda
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 4:
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// Salimos de la Aplicacion
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;notifyDestroyed();
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&amp;nbsp;&amp;nbsp; &amp;nbsp;}
}

&lt;/pre&gt;&lt;br /&gt;
Saludos...&lt;br /&gt;
Maty!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4250178211242030243-6151673997498552356?l=matyjavame.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/Q7hR054_giIflptmmx_k6lVQpZs/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Q7hR054_giIflptmmx_k6lVQpZs/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/Q7hR054_giIflptmmx_k6lVQpZs/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Q7hR054_giIflptmmx_k6lVQpZs/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/MatyJavaMe/~4/EjeGi2xR2OQ" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://matyjavame.blogspot.com/feeds/6151673997498552356/comments/default" title="Enviar comentarios" /><link rel="replies" type="text/html" href="http://matyjavame.blogspot.com/2010/06/creando-un-menu-principal.html#comment-form" title="1 comentarios" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4250178211242030243/posts/default/6151673997498552356?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4250178211242030243/posts/default/6151673997498552356?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MatyJavaMe/~3/EjeGi2xR2OQ/creando-un-menu-principal.html" title="Creando un Menú Principal" /><author><name>Matias Camiletti</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-I3Gcud5X_rE/AAAAAAAAAAI/AAAAAAAABCs/3r_nD5j_fyc/s512-c/photo.jpg" /></author><thr:total>1</thr:total><feedburner:origLink>http://matyjavame.blogspot.com/2010/06/creando-un-menu-principal.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkQMQX86cCp7ImA9WxFVEEw.&quot;"><id>tag:blogger.com,1999:blog-4250178211242030243.post-7284830435144074567</id><published>2010-06-08T09:26:00.000-07:00</published><updated>2010-06-08T09:26:20.118-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-06-08T09:26:20.118-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="java me" /><category scheme="http://www.blogger.com/atom/ns#" term="tutorial" /><category scheme="http://www.blogger.com/atom/ns#" term="programacion" /><title>Comenzando con Java ME</title><content type="html">Hola gente!&lt;br /&gt;
&lt;br /&gt;
Hoy les mostrare como crear Alertas, Listas y Cuadros de Textos.&lt;br /&gt;
&lt;br /&gt;
1 - Abrimos NetBeans y creamos un Proyecto Nuevo: Mobile Application y MIDP 2.0.&lt;br /&gt;
Si tienen dudas de como crear un proyecto nuevo, visiten: &lt;a href="http://matyjavame.blogspot.com/2010/06/hola-mundo-con-java-me.html"&gt;Hola Mundo con Java ME&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
2 - Creamos un Nuevo MIDlet.&lt;br /&gt;
&lt;br /&gt;
3 - Se nos creara el Codigo:&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="brush: java"&gt;import javax.microedition.midlet.*;

/**
 * @author matias
 */
public class ClaseUnoMidlet extends MIDlet {
    public void startApp() {
    }

    public void pauseApp() {
    }

    public void destroyApp(boolean unconditional) {
    }
}&lt;/pre&gt;&lt;br /&gt;
4 - Lo primero que deberemos hacer es obtener nuestro Objeto Pantalla (Display) para poder poner en pantalla nuestros Objetos, en este caso las Alertas, Listas y Cuadros de Textos.&amp;nbsp;Así&amp;nbsp;que solo escribimos la siguiente linea: (dentro del&amp;nbsp;método&amp;nbsp;startApp(), en este caso todo el&amp;nbsp;código&amp;nbsp;sera escrito dentro de este&amp;nbsp;método.)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="brush: java"&gt;Display pantalla = Display.getDisplay(this);&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
5 - Nos tirara un error eso porque no importamos las&amp;nbsp;librerías&amp;nbsp;así&amp;nbsp;que para no tener que agregar cada&amp;nbsp;librería&amp;nbsp;una por una agregamos la siguiente:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="brush: java"&gt;import javax.microedition.lcdui.*;
import javax.microedition.midlet.*;

&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
6 - Ahora creamos primero nuestra Alerta:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="brush: java"&gt;Alert alerta = new Alert("Mi Alerta", "Mensaje de la Alerta", null, AlertType.CONFIRMATION)
&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
Así&amp;nbsp;de sencillo creamos una Alerta,&amp;nbsp;Descripción&amp;nbsp;de los&amp;nbsp;parámetros&amp;nbsp;que recibe la clase Alert:&lt;br /&gt;
&lt;br /&gt;
a) Titulo de la alerta (String)&lt;br /&gt;
b) Mensaje de la Alerta (String)&lt;br /&gt;
c) Una Imagen, por el momento no trabajaremos con&amp;nbsp;imágenes&amp;nbsp;mas adelante les&amp;nbsp;explicare&amp;nbsp;la Clase Image (Image)&lt;br /&gt;
d) Tipo de la Alerta:&lt;br /&gt;
&lt;br /&gt;
AlertType.CONFIRMATION &amp;nbsp;: "Cuando se realizo una&amp;nbsp;operación."&lt;br /&gt;
AlertType.ALARM : "Cuando se le avisa al usuario sobre un evento"&lt;br /&gt;
AlertType.ERROR : "Se ha producido un error"&lt;br /&gt;
AlertType.INFO : "Avisos mostrando&amp;nbsp;información"&lt;br /&gt;
AlertType.WARNING : "Aviso para una&amp;nbsp;acción&amp;nbsp;peligrosa, Ejemplo: Esta por borrar todos los Contactos"&lt;br /&gt;
&lt;br /&gt;
Estos son los&amp;nbsp;únicos&amp;nbsp;tipos de alertas que se pueden definir.&lt;br /&gt;
&lt;br /&gt;
7 - Ahora ponemos la Alerta en la pantalla:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="brush: java"&gt;pantalla.setCurrent(alerta);
&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
Así&amp;nbsp;de sencillo podemos mostrar Objetos por pantalla, siempre y cuando esos objetos hallan heredado de la Clase Displayable.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_s5JK0NJkvQQ/TA5ph8Lq8uI/AAAAAAAAAGU/ojbwYE1hfZA/s1600/1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_s5JK0NJkvQQ/TA5ph8Lq8uI/AAAAAAAAAGU/ojbwYE1hfZA/s320/1.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
8 - Ahora crearemos nuestro Cuadro de Textos (TextBox):&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="brush: java"&gt;TextBox texto = new TextBox("Nombre", "", 32, TextField.ANY);
&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
Parámetros&amp;nbsp;de TextBox:&lt;br /&gt;
&lt;br /&gt;
a) Titulo del TextBox (String)&lt;br /&gt;
b) Valor por defecto dentro del cuadro de texto, por defecto se deja vacio: "", pero si quieres que el cuadro de texto ya tenga un texto escrito lo ingresas ahi (String)&lt;br /&gt;
c) La cantidad&amp;nbsp;máxima&amp;nbsp;de caracteres que permite (int)&lt;br /&gt;
d) el Tipo de caracteres que permite:&lt;br /&gt;
&lt;br /&gt;
TextField.ANY : Permite todos los caracteres&lt;br /&gt;
TextField.DECIMAL : Solo&amp;nbsp;números&amp;nbsp;decimales&lt;br /&gt;
TextField.EMAILADDR : Permite solo direcciones de Email&lt;br /&gt;
TextField.NUMERIC : Solo&amp;nbsp;números&amp;nbsp;del 0 al 9&lt;br /&gt;
TextField.PHONENUMBER : Permite los caracteres para escribir&amp;nbsp;números&amp;nbsp;de&amp;nbsp;teléfono&lt;br /&gt;
TextField.URL : Solo direcciones web&lt;br /&gt;
TextField.PASSWORD : Oculta los caracteres con&amp;nbsp;asteriscos&lt;br /&gt;
&lt;br /&gt;
Estos tipos se pueden combinar por ejemplo:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="brush: java"&gt;TextBox texto = new TextBox("Nombre", "", 32, TextField.NUMERIC | TextField.PASSWORD);
&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
Solo&amp;nbsp;deberán&amp;nbsp;concatenar los Tipos con " | ";&lt;br /&gt;
&lt;br /&gt;
9 - Reemplazamos la alerta por el TextBox:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="brush: java"&gt;pantalla.setCurrent(texto);
&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
Esto nos quedara algo asi:&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_s5JK0NJkvQQ/TA5sVUETFfI/AAAAAAAAAGc/HQR-gcSZZPg/s1600/2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_s5JK0NJkvQQ/TA5sVUETFfI/AAAAAAAAAGc/HQR-gcSZZPg/s320/2.png" /&gt;&lt;/a&gt;&lt;a href="http://1.bp.blogspot.com/_s5JK0NJkvQQ/TA5sZNfgdvI/AAAAAAAAAGk/srG15F4u37k/s1600/3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_s5JK0NJkvQQ/TA5sZNfgdvI/AAAAAAAAAGk/srG15F4u37k/s320/3.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
10 - Nos queda ahora crear Listas:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="brush: java"&gt;List lista = new List("Mi Lista", List.IMPLICIT);
&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
Parámetros&amp;nbsp;de las Listas:&lt;br /&gt;
&lt;br /&gt;
a) Titulo de la lista (String)&lt;br /&gt;
b) Tipo de Lista:&lt;br /&gt;
&lt;br /&gt;
List.IMPLICIT : Listas tipo&amp;nbsp;Menú&lt;br /&gt;
List.EXCLUSIVE : Listas que solo se puede elegir una&amp;nbsp;Opción&amp;nbsp;(El equivalente a botones de Radio)&lt;br /&gt;
List.MULTIPLE : Listas que permite seleccionar&amp;nbsp;múltiples&amp;nbsp;opciones (Equivalente a CheckBoxs)&lt;br /&gt;
&lt;br /&gt;
Para agregar items a nuestra lista debemos hacerlo a&amp;nbsp;través&amp;nbsp;del&amp;nbsp;método&amp;nbsp;Append:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="brush: java"&gt;lista.append("Opcion 1", null);
&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
El primer&amp;nbsp;parámetro&amp;nbsp;recibe el Nombre del Item, y el segundo recibe una Imagen como no trabajamos se deja en Null.&lt;br /&gt;
Entonces nuestro codigo quedara:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="brush: java"&gt;List lista = new List("Mi Lista", List.MULTIPLE);
lista.append("Opcion 1", null);
lista.append("Opcion 2", null);
lista.append("Opcion 3", null);
lista.append("Opcion 4", null);
lista.append("Opcion 5", null);
&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
Esto se vera&amp;nbsp;así:&lt;br /&gt;
&lt;br /&gt;
Listas&amp;nbsp;Implícitas:&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_s5JK0NJkvQQ/TA5u2qW17VI/AAAAAAAAAG8/s8k4hblsYW0/s1600/6.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_s5JK0NJkvQQ/TA5u2qW17VI/AAAAAAAAAG8/s8k4hblsYW0/s320/6.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
Listas Exclusivas:&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_s5JK0NJkvQQ/TA5uqn-1ldI/AAAAAAAAAG0/XV36sgha_R8/s1600/5.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_s5JK0NJkvQQ/TA5uqn-1ldI/AAAAAAAAAG0/XV36sgha_R8/s320/5.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
Listas&amp;nbsp;Múltiples:&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_s5JK0NJkvQQ/TA5ubsmpqJI/AAAAAAAAAGs/1B08kyeqTFI/s1600/4.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_s5JK0NJkvQQ/TA5ubsmpqJI/AAAAAAAAAGs/1B08kyeqTFI/s320/4.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
Esto ha sido todo por hoy,&amp;nbsp;seguiré&amp;nbsp;trayéndote&amp;nbsp;tutoriales para Java Me...&lt;br /&gt;
&lt;br /&gt;
Saludos&lt;br /&gt;
Maty.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4250178211242030243-7284830435144074567?l=matyjavame.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/qJDCntgyYzJ3K3oPiBCyqOdn5PY/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/qJDCntgyYzJ3K3oPiBCyqOdn5PY/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/qJDCntgyYzJ3K3oPiBCyqOdn5PY/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/qJDCntgyYzJ3K3oPiBCyqOdn5PY/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/MatyJavaMe/~4/weALLElcoog" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://matyjavame.blogspot.com/feeds/7284830435144074567/comments/default" title="Enviar comentarios" /><link rel="replies" type="text/html" href="http://matyjavame.blogspot.com/2010/06/comenzando-con-java-me.html#comment-form" title="1 comentarios" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4250178211242030243/posts/default/7284830435144074567?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4250178211242030243/posts/default/7284830435144074567?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MatyJavaMe/~3/weALLElcoog/comenzando-con-java-me.html" title="Comenzando con Java ME" /><author><name>Matias Camiletti</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-I3Gcud5X_rE/AAAAAAAAAAI/AAAAAAAABCs/3r_nD5j_fyc/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/_s5JK0NJkvQQ/TA5ph8Lq8uI/AAAAAAAAAGU/ojbwYE1hfZA/s72-c/1.png" height="72" width="72" /><thr:total>1</thr:total><feedburner:origLink>http://matyjavame.blogspot.com/2010/06/comenzando-con-java-me.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEcFQXY8eyp7ImA9WxFUEEo.&quot;"><id>tag:blogger.com,1999:blog-4250178211242030243.post-4062422499083680772</id><published>2010-06-05T12:03:00.000-07:00</published><updated>2010-06-20T16:20:10.873-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-06-20T16:20:10.873-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="java me" /><category scheme="http://www.blogger.com/atom/ns#" term="aplicacion" /><title>GastosMax - Mi Primera Aplicacion Jave ME</title><content type="html">&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_s5JK0NJkvQQ/TAqcCaHCG1I/AAAAAAAAAFc/E9JbHufrxAs/s1600/GastosMax2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_s5JK0NJkvQQ/TAqcCaHCG1I/AAAAAAAAAFc/E9JbHufrxAs/s320/GastosMax2.png" /&gt;&lt;/a&gt;&lt;/div&gt;Buenas hoy les presentare mi primera aplicación hecha en Java ME, que es soportada para la mayoría de los celulares del mercado. &lt;br /&gt;
&lt;br /&gt;
GastosMax es una simple aplicación con la que puedes llevar un simple detalle de todos tus gastos.&lt;br /&gt;
&lt;br /&gt;
Tendras un listado de todos tus gastos y el total de todo lo que llevas gastando.&lt;br /&gt;
&lt;br /&gt;
&lt;div style="text-align: center;"&gt;&lt;span style="font-size: large;"&gt;&lt;b&gt;&lt;a href="http://www.box.net/shared/t6uaf33206"&gt;Descargar GastosMax v1.0.0&lt;/a&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;
&lt;b&gt;Aceptamos cualquier sugerencia y opiniones para mejorar la aplicación ;).&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Imágenes:&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_s5JK0NJkvQQ/TAqdagwWIrI/AAAAAAAAAFk/-qRCavkO0u4/s1600/Screenshot0005.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="200" src="http://1.bp.blogspot.com/_s5JK0NJkvQQ/TAqdagwWIrI/AAAAAAAAAFk/-qRCavkO0u4/s200/Screenshot0005.png" width="150" /&gt;&lt;/a&gt;&lt;a href="http://2.bp.blogspot.com/_s5JK0NJkvQQ/TAqdfw-y6dI/AAAAAAAAAFs/ix-liH-QaMc/s1600/Screenshot0007.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="200" src="http://2.bp.blogspot.com/_s5JK0NJkvQQ/TAqdfw-y6dI/AAAAAAAAAFs/ix-liH-QaMc/s200/Screenshot0007.png" width="150" /&gt;&lt;/a&gt;&lt;a href="http://4.bp.blogspot.com/_s5JK0NJkvQQ/TAqdo-C0eTI/AAAAAAAAAF0/zytyFUkXz84/s1600/Screenshot0010.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="200" src="http://4.bp.blogspot.com/_s5JK0NJkvQQ/TAqdo-C0eTI/AAAAAAAAAF0/zytyFUkXz84/s200/Screenshot0010.png" width="150" /&gt;&lt;/a&gt;&lt;a href="http://1.bp.blogspot.com/_s5JK0NJkvQQ/TAqdtfZ7QjI/AAAAAAAAAF8/TNZ9vOFHfe4/s1600/Screenshot0008.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="200" src="http://1.bp.blogspot.com/_s5JK0NJkvQQ/TAqdtfZ7QjI/AAAAAAAAAF8/TNZ9vOFHfe4/s200/Screenshot0008.png" width="150" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4250178211242030243-4062422499083680772?l=matyjavame.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/3F4FazKpz_WMctxYqSTo6TX9uvo/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/3F4FazKpz_WMctxYqSTo6TX9uvo/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/3F4FazKpz_WMctxYqSTo6TX9uvo/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/3F4FazKpz_WMctxYqSTo6TX9uvo/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/MatyJavaMe/~4/W6vEA_6VbhA" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://matyjavame.blogspot.com/feeds/4062422499083680772/comments/default" title="Enviar comentarios" /><link rel="replies" type="text/html" href="http://matyjavame.blogspot.com/2010/06/gastosmax-mi-primera-aplicacion-jave-me.html#comment-form" title="0 comentarios" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4250178211242030243/posts/default/4062422499083680772?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4250178211242030243/posts/default/4062422499083680772?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MatyJavaMe/~3/W6vEA_6VbhA/gastosmax-mi-primera-aplicacion-jave-me.html" title="GastosMax - Mi Primera Aplicacion Jave ME" /><author><name>Matias Camiletti</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-I3Gcud5X_rE/AAAAAAAAAAI/AAAAAAAABCs/3r_nD5j_fyc/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/_s5JK0NJkvQQ/TAqcCaHCG1I/AAAAAAAAAFc/E9JbHufrxAs/s72-c/GastosMax2.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://matyjavame.blogspot.com/2010/06/gastosmax-mi-primera-aplicacion-jave-me.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkIFSHk9eyp7ImA9WxFWF0g.&quot;"><id>tag:blogger.com,1999:blog-4250178211242030243.post-1209584222691445932</id><published>2010-06-01T12:00:00.000-07:00</published><updated>2010-06-05T09:15:19.763-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-06-05T09:15:19.763-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="hola mundo" /><category scheme="http://www.blogger.com/atom/ns#" term="programacion" /><title>Hola Mundo con Java ME</title><content type="html">Buenas... Hoy un pequeño tutorial para comenzar con NetBeans y observar como crear nuestra primer aplicación con JAVA ME.&lt;br /&gt;
&lt;br /&gt;
1 - Abrimos NetBeans&lt;br /&gt;
&lt;br /&gt;
2 - Vamos a Archivo -&amp;gt; Proyecto Nuevo (Ctrl + Mayus + N)&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_s5JK0NJkvQQ/TAVLpIxGVHI/AAAAAAAAAEE/mzXftvEN6aU/s1600/1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_s5JK0NJkvQQ/TAVLpIxGVHI/AAAAAAAAAEE/mzXftvEN6aU/s320/1.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
3 - Creamos un Proyecto de Tipo: Java ME -&amp;gt; Mobile Application y hacemos clic en Siguiente.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_s5JK0NJkvQQ/TAVPgnJDj7I/AAAAAAAAAEc/cy3QkQIf2wM/s1600/2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_s5JK0NJkvQQ/TAVPgnJDj7I/AAAAAAAAAEc/cy3QkQIf2wM/s320/2.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;br /&gt;
4 - Aqui definimos el Nombre de nuestro Proyecto y la ubicacion. Proyect Name (Nombre del Proyecto).&lt;br /&gt;
&lt;br /&gt;
Y dejamos solo la&amp;nbsp; casilla seleccionada de Set as Main Project.&lt;br /&gt;
&lt;br /&gt;
* Set as Main Project: El proyecto se fija como Principal&lt;br /&gt;
* Create Hello MIDlet: Seleccionando esta casilla nos creara automáticamente un Hola Mundo, pero esta clase tendrá muchos componentes que por el momento no es necesario que lo sepan, además de tener mucho código y ya asustarlos de una xD.&lt;br /&gt;
&lt;br /&gt;
Hacemos clic en Siguiente.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_s5JK0NJkvQQ/TAVN2nCIUKI/AAAAAAAAAEU/4mtk09klnh8/s1600/3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_s5JK0NJkvQQ/TAVN2nCIUKI/AAAAAAAAAEU/4mtk09klnh8/s320/3.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
5 - En este paso podremos elegir el Emulador con que probaremos nuestra aplicación y las configuraciones de la Aplicacion. Es recomendable seleccionar CLDC-1.1 y MIDP-2.0 ya que son los estándares que soportan la mayoría de los celulares del mercado.&lt;br /&gt;
&lt;br /&gt;
Y aqui ya hacemos clic en Terminar.&lt;br /&gt;
&lt;br /&gt;
6 - Hacemos clic en Source Packages con el botón derecho: Nuevo -&amp;gt; MIDlet&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_s5JK0NJkvQQ/TAVQXx4-F_I/AAAAAAAAAEk/hARtf37t6z0/s1600/4.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_s5JK0NJkvQQ/TAVQXx4-F_I/AAAAAAAAAEk/hARtf37t6z0/s320/4.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
7 - Aqui configuramos nuestro MIDlet:&lt;br /&gt;
&lt;br /&gt;
* MIDlet Name: Nombre de nuestra Aplicacion&lt;br /&gt;
* MIDlet Class Name: Nombre de la Clase de nuestra aplicación, atención no puede tener espacios.&lt;br /&gt;
* MIDlet Icon: Icono de nuestra aplicacion, por el momento lo dejamos en blanco.&lt;br /&gt;
&lt;br /&gt;
y hacemos clic en Terminar.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_s5JK0NJkvQQ/TAVRdp7vWjI/AAAAAAAAAEs/ekuCzRQA63k/s1600/5.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_s5JK0NJkvQQ/TAVRdp7vWjI/AAAAAAAAAEs/ekuCzRQA63k/s320/5.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
8 - Ya tenemos nuestra Clase creada. Nuestra clase extiende (es hija) de MIDlet, toda aplicación en Java ME debe heredar de MIDlet.&lt;br /&gt;
&lt;br /&gt;
Se encontraran con 3 Métodos/Funciones ya predefinidas, estos metodos son necesarios para el fundamiento de la aplicación:&lt;br /&gt;
&lt;br /&gt;
* startApp() : La aplicacion iniciara desde este metodo.&lt;br /&gt;
* pauseApp() : Cuando la aplicación es temporalmente detenida, por ejemplo por la recepcion de una llamada. Se llama a este método&lt;br /&gt;
* destroyApp() : Cuando la aplicacion se cierra.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_s5JK0NJkvQQ/TAVTCNg7PYI/AAAAAAAAAE0/ShqLO3u8Enw/s1600/6.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_s5JK0NJkvQQ/TAVTCNg7PYI/AAAAAAAAAE0/ShqLO3u8Enw/s320/6.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
9 - Escribimos la siguiente linea:&lt;br /&gt;
&lt;pre class="brush: js"&gt;Display pantalla = Display.getDisplay(this);&lt;/pre&gt;&amp;nbsp;NetBeans nos marcara un error en esta linea, si hacemos clic en la lamparita nos dira las posibles soluciones al problema. Y hacemos clic en Añadir "import" a javax.microedition.lcdui.Display;&lt;br /&gt;
&lt;br /&gt;
Así nos agrega las clases necesarias para poder usar la clase Display.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_s5JK0NJkvQQ/TAVUbjCb84I/AAAAAAAAAE8/QEPD-xUsJss/s1600/7.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_s5JK0NJkvQQ/TAVUbjCb84I/AAAAAAAAAE8/QEPD-xUsJss/s320/7.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
Display: Es una clase que representa la pantalla del celular. En nuestra linea reservamos un lugar en la memoria (Display pantalla;) y asignamos a ese espacio el objeto pantalla existente.&lt;br /&gt;
&lt;br /&gt;
Con nuestro objeto pantalla podremos especificar que mostrar por pantalla.&lt;br /&gt;
&lt;br /&gt;
10 - El objeto pantalla para poder mostrar algo contiene un metodo:&lt;br /&gt;
&lt;pre class="brush: js"&gt;pantalla.setCurrent(Displayable objeto);&lt;/pre&gt;&amp;nbsp;Que recibe como parámetro un objeto de tipo "Displayable", que sera el objeto a mostrar en pantalla.&lt;br /&gt;
&lt;br /&gt;
Asi que primero debemos crear un objeto para poder mostrar en pantalla:&lt;br /&gt;
&lt;pre class="brush: js"&gt;Alert alerta = new Alert(
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "Hola Mundo", 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "Este es mi primer mensaje", 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; null, 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AlertType.CONFIRMATION);&lt;/pre&gt;&amp;nbsp;Aqui creamos un Alerta para mostrar un mensaje, la Clase Alert recibe como parametros:&lt;br /&gt;
&lt;br /&gt;
* Titulo : String&lt;br /&gt;
* Mensaje : String&lt;br /&gt;
* Imagen : Imagen|null&lt;br /&gt;
* Tipo de Alerta : AlertType&lt;br /&gt;
&lt;br /&gt;
Al escribir esta linea de código, NetBeans nos tirara error en la linea eso es porque hay que importar las librerías necesarias, hacen de nuevo clic en la lamparita y solucionan ese problema.&lt;br /&gt;
&lt;br /&gt;
11 - Ahora solo nos queda mostrar esa alerta en la pantalla, eso lo haremos con:&lt;br /&gt;
&lt;pre class="brush: js"&gt;pantalla.setCurrent(alerta);&lt;/pre&gt;&amp;nbsp;Ya tenemos nuestro primer Hola Mundo.&lt;br /&gt;
&lt;br /&gt;
El codigo deberia quedar:&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_s5JK0NJkvQQ/TAVXmf52VjI/AAAAAAAAAFE/nieErf-VcSA/s1600/8.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_s5JK0NJkvQQ/TAVXmf52VjI/AAAAAAAAAFE/nieErf-VcSA/s320/8.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
12 - Ejecutamos nuestra aplicación para probar si todo ha salido bien:&lt;br /&gt;
&lt;br /&gt;
* Haciendo clic con F6&lt;br /&gt;
* Llendo a Ejecutar -&amp;gt; Ejecutar Main Project&lt;br /&gt;
* Haciendo clic en el Boton:&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_s5JK0NJkvQQ/TAVYEH7mb6I/AAAAAAAAAFM/NNXaHzA5dU4/s1600/9.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_s5JK0NJkvQQ/TAVYEH7mb6I/AAAAAAAAAFM/NNXaHzA5dU4/s320/9.png" /&gt;&lt;/a&gt;&lt;/div&gt;&amp;nbsp;13 - Se nos abrirá el Emulador, hacemos clic en Launch e iniciara nuestra aplicacion:&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_s5JK0NJkvQQ/TAVYrUdSunI/AAAAAAAAAFU/5ABWt8WS_sI/s1600/10.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_s5JK0NJkvQQ/TAVYrUdSunI/AAAAAAAAAFU/5ABWt8WS_sI/s320/10.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
Espero que les halla resultado facil e util para comenzar con Java ME.&lt;br /&gt;
&lt;br /&gt;
Saludos...&lt;br /&gt;
Maty&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4250178211242030243-1209584222691445932?l=matyjavame.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/_TIoJiU3i7H0kJuCgJlmuRuif1c/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/_TIoJiU3i7H0kJuCgJlmuRuif1c/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/_TIoJiU3i7H0kJuCgJlmuRuif1c/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/_TIoJiU3i7H0kJuCgJlmuRuif1c/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/MatyJavaMe/~4/XauD-iWZU84" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://matyjavame.blogspot.com/feeds/1209584222691445932/comments/default" title="Enviar comentarios" /><link rel="replies" type="text/html" href="http://matyjavame.blogspot.com/2010/06/hola-mundo-con-java-me.html#comment-form" title="3 comentarios" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4250178211242030243/posts/default/1209584222691445932?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4250178211242030243/posts/default/1209584222691445932?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MatyJavaMe/~3/XauD-iWZU84/hola-mundo-con-java-me.html" title="Hola Mundo con Java ME" /><author><name>Matias Camiletti</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-I3Gcud5X_rE/AAAAAAAAAAI/AAAAAAAABCs/3r_nD5j_fyc/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/_s5JK0NJkvQQ/TAVLpIxGVHI/AAAAAAAAAEE/mzXftvEN6aU/s72-c/1.png" height="72" width="72" /><thr:total>3</thr:total><feedburner:origLink>http://matyjavame.blogspot.com/2010/06/hola-mundo-con-java-me.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkINQHw6eyp7ImA9WxFXGU8.&quot;"><id>tag:blogger.com,1999:blog-4250178211242030243.post-1911980991471800159</id><published>2010-05-26T19:31:00.000-07:00</published><updated>2010-05-26T19:49:51.213-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-05-26T19:49:51.213-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="sdk" /><category scheme="http://www.blogger.com/atom/ns#" term="emulador" /><title>MOTODEV SDK for Java ME v3.0 (Emulador)</title><content type="html">Para poder probar su aplicación en los diferentes celulares, tendrás que descargar el emulador de cada empresa para verificar si la aplicación funciona en cada celular. Hoy les mostrare como hacer para descargar el Emulador de Java ME de Motorola:&lt;br /&gt;&lt;br /&gt;1 - Ingresamos a la Web de Desarrolladores para Motorola (&lt;a href="http://developer.motorola.com/"&gt;http://developer.motorola.com/&lt;/a&gt;)&lt;br /&gt;&lt;br /&gt;2 - Pasamos el Mouse sobre "Platforms" y haces clic en Java ME:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_s5JK0NJkvQQ/S_3c2n3mKMI/AAAAAAAAADY/PEKM3WmSL_w/s1600/mot1.png"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 320px; height: 200px;" src="http://4.bp.blogspot.com/_s5JK0NJkvQQ/S_3c2n3mKMI/AAAAAAAAADY/PEKM3WmSL_w/s320/mot1.png" alt="" id="BLOGGER_PHOTO_ID_5475775552925608130" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;3 - Ahora te dirigis a SDKs:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_s5JK0NJkvQQ/S_3dDPXLoqI/AAAAAAAAADg/4_bAm6acZeE/s1600/mot2.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 200px;" src="http://3.bp.blogspot.com/_s5JK0NJkvQQ/S_3dDPXLoqI/AAAAAAAAADg/4_bAm6acZeE/s320/mot2.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5475775769685500578" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;4 - Haces clic en el ultimo enlace: MOTODEV SDK for Java ME&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_s5JK0NJkvQQ/S_3dQ79e9bI/AAAAAAAAADo/mTJu9QI2wBg/s1600/mot3.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 200px;" src="http://1.bp.blogspot.com/_s5JK0NJkvQQ/S_3dQ79e9bI/AAAAAAAAADo/mTJu9QI2wBg/s320/mot3.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5475776004995610034" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;5 - Clic en Download&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_s5JK0NJkvQQ/S_3dahQm24I/AAAAAAAAADw/bEgZPpRaeDE/s1600/mot4.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 200px;" src="http://4.bp.blogspot.com/_s5JK0NJkvQQ/S_3dahQm24I/AAAAAAAAADw/bEgZPpRaeDE/s320/mot4.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5475776169626753922" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;6 - Por ultimo elegin la version para su Sistema Operativo y lo instalan.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_s5JK0NJkvQQ/S_3dk_2PL6I/AAAAAAAAAD4/Ny7FpU7ASAE/s1600/mot5.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 200px;" src="http://2.bp.blogspot.com/_s5JK0NJkvQQ/S_3dk_2PL6I/AAAAAAAAAD4/Ny7FpU7ASAE/s320/mot5.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5475776349636341666" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Bueno eso es todo por hoy, proximamente un tutorial para agregar los emuladores a Netbeans y como usarlos...&lt;br /&gt;&lt;br /&gt;Saludos...&lt;br /&gt;Maty&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4250178211242030243-1911980991471800159?l=matyjavame.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/u-pvgAs9OGHOIlQKMyYIKArhFE4/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/u-pvgAs9OGHOIlQKMyYIKArhFE4/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/u-pvgAs9OGHOIlQKMyYIKArhFE4/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/u-pvgAs9OGHOIlQKMyYIKArhFE4/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/MatyJavaMe/~4/nRlHcifB1_o" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://matyjavame.blogspot.com/feeds/1911980991471800159/comments/default" title="Enviar comentarios" /><link rel="replies" type="text/html" href="http://matyjavame.blogspot.com/2010/05/motodev-sdk-for-java-me-v30-emulador.html#comment-form" title="0 comentarios" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4250178211242030243/posts/default/1911980991471800159?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4250178211242030243/posts/default/1911980991471800159?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MatyJavaMe/~3/nRlHcifB1_o/motodev-sdk-for-java-me-v30-emulador.html" title="MOTODEV SDK for Java ME v3.0 (Emulador)" /><author><name>Matias Camiletti</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-I3Gcud5X_rE/AAAAAAAAAAI/AAAAAAAABCs/3r_nD5j_fyc/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/_s5JK0NJkvQQ/S_3c2n3mKMI/AAAAAAAAADY/PEKM3WmSL_w/s72-c/mot1.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://matyjavame.blogspot.com/2010/05/motodev-sdk-for-java-me-v30-emulador.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUcBQXw6eCp7ImA9WxFXGUw.&quot;"><id>tag:blogger.com,1999:blog-4250178211242030243.post-4707205683038900784</id><published>2010-05-26T15:30:00.001-07:00</published><updated>2010-05-26T15:30:50.210-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-05-26T15:30:50.210-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="noticias" /><title>Bienvenidos a Java ME</title><content type="html">&lt;p class="MsoNormal"&gt;Este será mi blog donde les valla dejando tutoriales para programar en Java Micro Edition (Java ME).&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Para empezar a programar en Java ME, les recomendare dos IDEs: Eclipse (&lt;a href="http://www.eclipse.org/"&gt;http://www.eclipse.org/&lt;/a&gt;) y Netbeans (&lt;a href="http://netbeans.org/"&gt;http://netbeans.org/&lt;/a&gt;). Para los ejemplos yo usare Netbeans que me parece que es más fácil de usar para los que recién comienzan, ya que se encuentra en español.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;Saludos&lt;/p&gt;&lt;p class="MsoNormal"&gt;Maty.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4250178211242030243-4707205683038900784?l=matyjavame.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/l0vFMaqqSxo_rvYJf29YQwC5vtQ/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/l0vFMaqqSxo_rvYJf29YQwC5vtQ/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/l0vFMaqqSxo_rvYJf29YQwC5vtQ/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/l0vFMaqqSxo_rvYJf29YQwC5vtQ/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/MatyJavaMe/~4/CzEpEYX-a7I" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://matyjavame.blogspot.com/feeds/4707205683038900784/comments/default" title="Enviar comentarios" /><link rel="replies" type="text/html" href="http://matyjavame.blogspot.com/2010/05/bienvenidos-java-me.html#comment-form" title="0 comentarios" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4250178211242030243/posts/default/4707205683038900784?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4250178211242030243/posts/default/4707205683038900784?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MatyJavaMe/~3/CzEpEYX-a7I/bienvenidos-java-me.html" title="Bienvenidos a Java ME" /><author><name>Matias Camiletti</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-I3Gcud5X_rE/AAAAAAAAAAI/AAAAAAAABCs/3r_nD5j_fyc/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://matyjavame.blogspot.com/2010/05/bienvenidos-java-me.html</feedburner:origLink></entry></feed>

