<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Battisti - Blog &#187; java</title>
	<atom:link href="http://battisti.etc.br/category/java/feed/" rel="self" type="application/rss+xml" />
	<link>http://battisti.etc.br</link>
	<description>Tecnologia, Web e um pouco de cultura inútil</description>
	<lastBuildDate>Tue, 27 Jul 2010 02:03:00 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>JavaME Usando Form Exemplo Simples</title>
		<link>http://battisti.etc.br/2009/05/18/javame-usando-form-exemplo-simples/</link>
		<comments>http://battisti.etc.br/2009/05/18/javame-usando-form-exemplo-simples/#comments</comments>
		<pubDate>Mon, 18 May 2009 23:42:40 +0000</pubDate>
		<dc:creator>battisti</dc:creator>
				<category><![CDATA[java]]></category>

		<guid isPermaLink="false">http://battisti.etc.br/?p=447</guid>
		<description><![CDATA[Introdução Hoje tive uma aula muito interessante aqui na pós sobre o desenvolvimento para aplicativos móveis usando o JavaME, depois de fazer alguns exercícios resolvi postar aqui um exemplo bem simples que implementamos durante a aula. Objetivo do Exemplo Neste exemplo será criado um formulário com dois combo onde serão armazenados os nomes de algumas [...]]]></description>
			<content:encoded><![CDATA[<div class="mwordstext"><h1>Introdução</h1>
<p>Hoje tive uma aula muito interessante aqui na pós sobre o desenvolvimento para aplicativos móveis usando o <a href="http://java.sun.com/javame/index.jsp" target="_self">JavaME</a>, depois de fazer alguns exercícios resolvi postar aqui um exemplo bem simples que implementamos durante a aula.</p>
<h1><span id="more-447"></span>Objetivo do Exemplo</h1>
<p>Neste exemplo será criado um formulário com dois <em>combo</em> onde serão armazenados os nomes de algumas cidades, depois de escolher as cidades será calculado a distância entre elas.</p>
<h1><strong>O Código Fonte</strong></h1>
<pre lang="java">package hello;

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

/**
 * @author Anselmo Battisti
 */
public class HelloMIDlet extends MIDlet implements CommandListener {

    private boolean midletPaused = false;

    private String[] cidades = {"Tupãssi","JS","Cascavel"};
    private int[][] distancia;

    // interface
    private List listInicioTrajeto;
    private List listFimTrajeto;
    private TextBox tbxDistancia;

    // comandos
    Command avancar = new Command("Destino",Command.OK,0);
    Command calcular = new Command("Distancia,",Command.OK,0);

    //
    private Command exitCommand;
    private Form form;
    private StringItem stringItem;
    //

    /**
     * The HelloMIDlet constructor.
     */
    public HelloMIDlet()
    {
        // distancia entre as cidades
        distancia = new int[3][3];

        distancia[0][0] = 0;
        distancia[1][1] = 0;
        distancia[2][2] = 0;

        distancia[0][1] = 10;
        distancia[1][0] = 10;

        distancia[1][2] = 30;
        distancia[2][1] = 30;

        distancia[0][2] = 40;
        distancia[2][0] = 40;
    }

    private void initialize() {
    }
    public void startMIDlet() {
        switchDisplayable(null, getForm());
    }

    public void resumeMIDlet() {
    }

    public void switchDisplayable(Alert alert, Displayable nextDisplayable) {
        // write pre-switch user code here
        Display display = getDisplay();
        if (alert == null) {
            display.setCurrent(nextDisplayable);
        } else {
            display.setCurrent(alert, nextDisplayable);
        }
        // write post-switch user code here
    }

    public void commandAction(Command command, Displayable displayable) {

        if(command == avancar){
            listFimTrajeto.setTitle("Fim do Trajeto");
            listFimTrajeto.addCommand(calcular);
            this.getDisplay().setCurrent(listFimTrajeto);
        } else if (command == calcular){
            String dist = Integer.toString(this.getDistancia(listInicioTrajeto.getSelectedIndex(),listFimTrajeto.getSelectedIndex()));
            tbxDistancia.setString(dist);
            this.getDisplay().setCurrent(tbxDistancia);
        }
    }

    /**
     * Returns an initiliazed instance of exitCommand component.
     * @return the initialized component instance
     */
    public Command getExitCommand() {
        if (exitCommand == null) {
            // write pre-init user code here
            exitCommand = new Command("Exit", Command.EXIT, 0);
            // write post-init user code here
        }
        return exitCommand;
    }

    public Form getForm() {
        if (form == null) {
            // write pre-init user code here
            form = new Form("Welcome", new Item[] { getStringItem() });
            form.addCommand(getExitCommand());
            form.setCommandListener(this);
            // write post-init user code here
        }
        return form;
    }

    public StringItem getStringItem() {
        if (stringItem == null) {
            // write pre-init user code here
            stringItem = new StringItem("Hello", "Hello, World!");
            // write post-init user code here
        }
        return stringItem;
    }

    public Display getDisplay () {
        return Display.getDisplay(this);
    }

    public void exitMIDlet() {
        switchDisplayable (null, null);
        destroyApp(true);
        notifyDestroyed();
    }

    public void startApp()
    {
        listInicioTrajeto = new List("Origem",List.EXCLUSIVE,cidades,null);
        listInicioTrajeto.setCommandListener(this);

        listFimTrajeto = new List("Destino",List.EXCLUSIVE,cidades,null);
        listFimTrajeto.setCommandListener(this);

        // tela inicial da aplicação
        listInicioTrajeto.setTitle("Inicio do Trajeto");
        listInicioTrajeto.addCommand(avancar);

        tbxDistancia = new TextBox("A Distancia eh", "", 30, TextField.ANY);
        this.getDisplay().setCurrent(listInicioTrajeto);
    }

    private int getDistancia(int cidInicial, int cidFinal)
    {
        return this.distancia[cidInicial][cidFinal];
    }

    public void pauseApp() {
        midletPaused = true;
    }

    public void destroyApp(boolean unconditional) {
    }
}</pre>
<h1>Conclusão</h1>
<p>Depois de compilar deve aparecer algo +- como a imagem abaixo.</p>
<p><img class="aligncenter size-full wp-image-450" title="exemplo" src="http://battisti.etc.br/wp-content/uploads/2009/05/exemplo.gif" alt="exemplo" width="257" height="363" /></p>
<p>Se você quiser fazer teu aplicativo rodar no teu celuar ai vai algumas dicas:</p>
<ol>
<li>Antes de fazer o <em>deploy</em> da aplicação verifique qual versão do MIDP o celular suporta, eu apanhei um pouco nisso pq o meu a1200i roda MIDP 2.0 e eu estava fazendo o <em>deplou</em> para MIDP 2.1</li>
<li>Não existe uma compatibilidade de interface entre as várias implementações de MIDP ou seja, se vc testou no a1200i não significa que a interface vai se comportaar da mesma forma em outro aparelho, principalmente se ele for de outro fabricante.</li>
</ol>
</div><!-- fim mwordstext -->]]></content:encoded>
			<wfw:commentRss>http://battisti.etc.br/2009/05/18/javame-usando-form-exemplo-simples/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
