J2ME/Lições/Primeira aplicação
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) {
}
}