comecei a pouco com J2ME, estou com 2 dúvidas:
dúvida 1: Estrutura do aplicativo J2ME:
Criei um MIDlet chamado Login, que chama uma classe denominada MenuPrincipal (em caso de sucesso no logon do usuário).
Essa classe é o menu principal do aplicativo, essencialmente. Nela tem os commands, chama outros forms, etc
Pergunta: está correto usar essa estrutura? somente o MIDlet Login e todos os demais arquivos classes java?
dúvida 2: Como fechar esse aplicativo de outra classe (e não de dentro do MIDlet)?
Tudo acontece a partir da classe MenuPrincipal. Nessa tela eu tenho um command sair, mas não posso colocar o método notifyDestroyed(); na ação dele, pois terei um erro.
Coloquei na MIDlet o método
public void exitMIDlet() {
notifyDestroyed();
}
Esse tópico me ajudou a entender como fazer:
http://www.guj.com.br/posts/list/137353.java
mas o fato é que não consegui chamar o método da outra classe (essa é de iniciante mesmo).
quando uso o comando
tenho uma exceção: java.lang.SecurityException: MIDlet not constructed by createMIDlet.
Qual a maneira correta de sair do aplicativo?
Primeira questão: Sim, é correto utilizar essa estrutura, pois o MIDlet é responsável pelo ciclo de vida da aplicação.
Segunda questão: quando vc usa new Login().exitMIDlet();
, Quer dizer que está criando uma outra instância da classe login e esta não é a mesma que já instanciou quando o MIDlet foi criado pela primeira vez. Então, basta fazer o seguinte: Caso queira instanciar um objeto de outra classe, passe para ela o seu MIDlet. ex: new meuForm(this); new meuForm(this);
Olá rafaelSaqueli, obrigado por responder.
Não consegui compreender sua idéia, desculpe. No meu caso, então:
Tenho o MIDlet Login, dele chamo a classe MenuPrincipal. Nesse ponto eu quero sair do aplicativo (na ação de um command). Quero chamar o método exitMIDlet(), que está no MIDlet Login.
Não consegui entender o que codificar na na ação do command.
Não expliquei muito bem mesmo.
Seguinte: Quando for criar um objeto da sua classe MenuPrincipal dentro do MIDlet, é necessário que envie pra ele qual é o MIDlet em questão.
assim:
caramba, deu certo, obrigado.
passei do MIDlet Login
na classe MenuPrincipal, criei o atributo
tive que criar o método construtor
public MenuPrincipal(Login login) {
this.login = login;
}
e na ação do command sair coloquei
Salvo alguma gambiarra minha, acho que era isso. Obrigado.