packagehello;importjavax.microedition.midlet.*;importjavax.microedition.lcdui.*;publicclassHelloMIDletextendsMIDletimplementsCommandListener{privateCommandsair;// The exit commandprivateCommandentrar;privateDisplaydisplay;// The display for this MIDletprivateFormform=null;publicHelloMIDlet(){display=Display.getDisplay(this);sair=newCommand("Sair",Command.EXIT,0);entrar=newCommand("Entrar",Command.ITEM,0);}publicvoidstartApp(){if(form==null){form=newForm("Estudo J2ME");TextFieldcUsuario=newTextField("Usuário:","",10,TextField.PLAIN);TextFieldcSenha=newTextField("Senha:","",10,TextField.PASSWORD);StringItembEntrar=newStringItem("","Entrar",StringItem.BUTTON);form.append(cUsuario);form.append(cSenha);form.append(bEntrar);bEntrar.addCommand(entrar);form.addCommand(sair);form.setCommandListener(this);display.setCurrent(form);}}publicvoidpauseApp(){}publicvoiddestroyApp(booleanunconditional){}publicvoidcommandAction(Commandc,Displayables){if(c==entrar){Alertalert=newAlert("TESTE!!!");display.setCurrent(alert);}if(c==sair){destroyApp(false);notifyDestroyed();}}}
Command normalmente é adicionado a Form, não a StringItem
Nunca se chama destroyApp, pois quem vai chamar é o AMS do celular, não a aplicação.
dcbasso
Então como fica para adicionar um evento a um botão por exemplo!
Ou ainda como faz para fechar… o SDK auto-gerou o close!
P
PoneyMan
dcbasso:
Então como fica para adicionar um evento a um botão por exemplo!
Ou ainda como faz para fechar… o SDK auto-gerou o close!
As respostas já foram dadas. Denovo:
Quem trata evento é o form, não o botão, por isto o addCommand no Form.
Não precisa do destroyApp, basta o notifyDestroyed, pois se vc leu o javadoc, lá diz que ele sinalizará ao AMS que o mesmo pode destruir a aplicação
dcbasso
Ta tudo bem mudei para o command ser na form… porém o botão nem tem função de botão! Ele até ficou como um label, um texto normal ali!
A sei lá… o conceito é um tanto diferente… para mim mudar a tela apenas com outro form?
j0nny
Esqueça essa sua stringItem, use apenas o Command, e na sua classe, implemente a interface commandListener, e lá trate os eventos dos seus commands.
dcbasso
Então eu mato os botões de tela, e uso aquele menuzinho lá em baixo, no rodapé!
Isso???
j0nny
dcbasso:
Então eu mato os botões de tela, e uso aquele menuzinho lá em baixo, no rodapé!
Isso???
Isso, mas se quiser um botão extremamente simples, faça com CustomItem.
dcbasso
Hummm, entendi!
Vou tentar fazer fazer um botão com CustoItem…
Então para o sistema com, digamos LOGIN, CADASTRO e CONSULTA eu teria que gerar 3 forms, e dar um display.setCurrent(FORM*);
Seria assim o conceito para desenvolver?
j0nny
dcbasso:
Hummm, entendi!
Vou tentar fazer fazer um botão com CustoItem…
Então para o sistema com, digamos LOGIN, CADASTRO e CONSULTA eu teria que gerar 3 forms, e dar um display.setCurrent(FORM*);
Seria assim o conceito para desenvolver?
A princípio sim!
dcbasso
!
P
PoneyMan
Leia mais tutorias na Internet. Vc está errando no básico do básico.
j0nny
dcbasso:
Estou tentando criar uma Form dentro de uma class, para cada form ficar separada e poder ser criada a hora que for ser usada…
Isso dá para fazer?
Eu tentei fazer isso e não deu certo: public class Login extends Form implements CommandListener
Grato pela força pessoal!
Mas o que não deu certo?
Adivinhar não é uma virtude que tenho :lol:
dcbasso
j0nny:
dcbasso:
Estou tentando criar uma Form dentro de uma class, para cada form ficar separada e poder ser criada a hora que for ser usada…
Isso dá para fazer?
Eu tentei fazer isso e não deu certo: public class Login extends Form implements CommandListener
Grato pela força pessoal!
Mas o que não deu certo?
Adivinhar não é uma virtude que tenho :lol:
Opa deixa eu ver aqui… na realidade, o Boone falou algo meio certo, mas o lance é que tem pouco tutorial avançado sobre ME… mto coisa que só mostra uma telinha HELLO WORLD e boa…
o erro é: Cannot Find Symbol na linha supra citada.
j0nny
dcbasso:
j0nny:
dcbasso:
Estou tentando criar uma Form dentro de uma class, para cada form ficar separada e poder ser criada a hora que for ser usada…
Isso dá para fazer?
Eu tentei fazer isso e não deu certo: public class Login extends Form implements CommandListener
Grato pela força pessoal!
Mas o que não deu certo?
Adivinhar não é uma virtude que tenho :lol:
Opa deixa eu ver aqui… na realidade, o Boone falou algo meio certo, mas o lance é que tem pouco tutorial avançado sobre ME… mto coisa que só mostra uma telinha HELLO WORLD e boa…
o erro é: Cannot Find Symbol na linha supra citada.
Bom, o erro é básico, vc digitou algo errado!
dcbasso
Acho que não dá para extender Form, nem Screen!
P
PoneyMan
Como vc quer tutorial avançado se o básico vc tropeça ?
No Javadoc diz que Form não é final, logo, vc pode extender perfeitamente.
dcbasso
Ta ta, vi o erro!
Faltou um Super("");
Poderia ter falado! Simples de resolver!
E
edwagner
Dá sim para adicionar um command ao StringItem, e é até bem simples. Vou usar seu código para mostrar como:
packagehello;importjavax.microedition.midlet.*;importjavax.microedition.lcdui.*;//você implementa o ItemCommandListener também.publicclassHelloMIDletextendsMIDletimplementsItemCommandListener,ItemCommandListener{privateCommandsair;// The exit commandprivateCommandentrar;privateDisplaydisplay;// The display for this MIDletprivateFormform=null;publicHelloMIDlet(){display=Display.getDisplay(this);sair=newCommand("Sair",Command.EXIT,0);entrar=newCommand("Entrar",Command.ITEM,0);}publicvoidstartApp(){if(form==null){form=newForm("Estudo J2ME");TextFieldcUsuario=newTextField("Usuário:","",10,TextField.PLAIN);TextFieldcSenha=newTextField("Senha:","",10,TextField.PASSWORD);StringItembEntrar=newStringItem("","Entrar",StringItem.BUTTON);form.append(cUsuario);form.append(cSenha);form.append(bEntrar);//retira esta linha: bEntrar.addCommand(entrar); //adiciona estas linhasCommandentrar=newCommand("Entrar",Command.ITEM,1);bEntrar.setDefaultCommand(entrar);item.setItemCommandListener(this);form.addCommand(sair);form.setCommandListener(this);display.setCurrent(form);}}publicvoidpauseApp(){}publicvoiddestroyApp(booleanunconditional){}//acrescenta este métodopublicvoidcommandAction(Commandc,Itemitem){System.out.println("voilaaaaa!!!!");//aqui você trata o comando}publicvoidcommandAction(Commandc,Displayables){if(c==entrar){Alertalert=newAlert("TESTE!!!");display.setCurrent(alert);}if(c==sair){destroyApp(false);notifyDestroyed();}}}
dcbasso
Valeu edwagner, vou testar!
dcbasso
Funcionou! Bem bacana…
Valeu mesmo, dá para colocar um botão agora…
P
PoneyMan
Ninguém disse que não dá…o que foi dito que não é comum, sendo o padrão, no Form.
dcbasso
boone:
edwagner:
Dá sim para adicionar um command ao StringItem, e é até bem simples. Vou usar seu código para mostrar como:
Ninguém disse que não dá…o que foi dito que não é comum, sendo o padrão, no Form.
O padrão form é aquele que vocês passaram!
Quando ou qual padrão é usado o TAL BOTAO…
E
edwagner
boone:
Ninguém disse que não dá…o que foi dito que não é comum, sendo o padrão, no Form.
Depende, se você for fazer uma calculadora, por exemplo, ou qualquer outro aplicativo que precise de botões para interagir com o usuário este é um bom jeito.