J2ME/Lições/Primeira aplicação

Origem: Wikilivros, livros abertos por um mundo aberto.

Neste artigo você irá aprender a criar a sua primeira classe para J2ME.

Importando[editar | editar código-fonte]

Para começarmos a fazer a nossa primeira aplicação (midlet) em J2ME vamos primeiramente importar a classe MIDlet para o nosso projeto.

import javax.microedition.midlet.*;

Criando a classe[editar | editar código-fonte]

Agora iremos criar a classe principal da nossa aplicação, ela irá extender a classe MIDlet, lembrando que o nome da classe sempre deverá ser o mesmo do arquivo .java.

import javax.microedition.midlet.*;
 
public class MinhaClasse extends MIDlet {
}

Métodos padrões[editar | editar código-fonte]

O ciclo de vida de uma aplicação para celular é sempre composta por 3 métodos startApp(), pauseApp() e destroyApp(boolean unconditional), vamos inseri-los dentro da nossa classe.

import javax.microedition.midlet.*;

public class MinhaClasse extends MIDlet {
    public void startApp() {
    }
    public void pauseApp() {
    }
    public void destroyApp(boolean unconditional) {
    }
}

O método startApp() funciona como o método main() no J2SE, ou seja, todas as instruções de execução ficarão dentro dele. Você também deve especificar o nome da MIDlet que contém os métodos de execução nas propriedades do projeto.

Execução dos métodos[editar | editar código-fonte]

Vamos agora mostrar a execução dos métodos através do console, para isso iremos usar normalmente o System.out.println() do pacote padrão do Java.

import javax.microedition.midlet.*;

public class MinhaClasse extends MIDlet {
    public void startApp() {
        System.out.println("Executando startApp");
    }
    public void pauseApp() {
        System.out.println("Executando pauseApp");
    }
    public void destroyApp(boolean unconditional) {
        System.out.println("Executando destroyApp");
    }
}

Você deve ter notado que foram executados apenas os métodos startApp() e destroyApp(), o pauseApp() não foi executado porque precisa de uma chamada especial para ser feita, como por exemplo uma ligação que o celular recebe enquanto o aplicativo está rodando.

Display[editar | editar código-fonte]

O objeto Display é o controlador do que é mostrado no dispositivo, ele está dentro do pacote javax.microedition.lcdui.

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

public class MinhaClasse extends MIDlet {
    Display meuDisplay;
    
    public void startApp() {
    }
    public void pauseApp() {
    }
    public void destroyApp(boolean unconditional) {
    }
}

Para criar fisicamente o objeto vamos chamar o método estático getDisplay().

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

public class MinhaClasse extends MIDlet {
    Display meuDisplay = Display.getDisplay(this);
    
    public void startApp() {
    }
    public void pauseApp() {
    }
    public void destroyApp(boolean unconditional) {
    }
}

Olá mundo[editar | editar código-fonte]

Fizemos várias coisas no projeto do programa, mas ainda não exibimos nada na tela, agora é a hora, nós vamos exibir a mensagem em um Form que é fácil de implementar, primeiro vamos instanciar o objeto Form.

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

public class MinhaClasse extends MIDlet {
    Display meuDisplay = Display.getDisplay(this);
    Form meuForm;
    
    public void startApp() {
    }
    public void pauseApp() {
    }
    public void destroyApp(boolean unconditional) {
    }
}

Agora vamos dar atributos ao objeto meuForm, nesse caso ele só tem um atributo que é a String de texto que será exibida na tela.

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

public class MinhaClasse extends MIDlet {
    Display meuDisplay = Display.getDisplay(this);
    Form meuForm = new Form("Título do Form. Olá mundo!");
    
    public void startApp() {
    }
    public void pauseApp() {
    }
    public void destroyApp(boolean unconditional) {
    }
}

Agora finalmente vamos exibir a mensagem na tela, para isso dentro do método startApp vamos colocar o objeto display, chamar o seu método setCurrent(), e colocar como atributo o objeto da classe Form.

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

public class MinhaClasse extends MIDlet {
    Display meuDisplay = Display.getDisplay(this);
    Form meuForm = new Form("Título do Form. Olá mundo!");
    
    public void startApp() {
        meuDisplay.setCurrent(meuForm);
    }
    public void pauseApp() {
    }
    public void destroyApp(boolean unconditional) {
    }
}