Commands e TextField

Tela

   

Fonte

import javax.microedition.midlet.*;

import javax.microedition.lcdui.*;

 

public class Principal extends MIDlet implements CommandListener {

    

    private Form form;

    private Display display;

    private TextField nomeField, idadeField, valorField;

    private Command maiusculoCommand, minusculoCommand, sairCommand;

    

    public Principal() {

        

        // captura o display

        display = Display.getDisplay(this);

        form = new Form("Título");

        

   // cria os comandos

        maiusculoCommand = new Command("Maiúsculo", Command.SCREEN, 0);

        minusculoCommand = new Command("Minúsculo", Command.SCREEN, 1);

        sairCommand      = new Command("Sair"     , Command.EXIT, 0);

        

   // cria os fields

        nomeField  = new TextField("Nome:"  , ""20, TextField.ANY);

        idadeField = new TextField("Idade:" , "",  2, TextField.NUMERIC);

        valorField = new TextField("Valor:" , ""20, TextField.DECIMAL); 

        

   // adiciona os comandos ao form. é possivel adicionar um comando a

        // um componente em específico, mas não lembro como associar

        // o evento CommandListener nesse caso

        form.addCommand(sairCommand);

        form.addCommand(maiusculoCommand);

        form.addCommand(minusculoCommand);

 

        // coloca tudo no form

        form.append(nomeField);

        form.append(idadeField);

        form.append(valorField);

 

   // associa o ComandListener com o método commandAction        

        form.setCommandListener(this);

        

        // ativa o form

        display.setCurrent(form);

    }

    

    // quando um command é acionado, este evento é chamado

    public void commandAction(Command command, Displayable displayable) {

        

        if (command == maiusculoCommand) {

            nomeField.setString(nomeField.getString().toUpperCase());

        }

 

        if (command == minusculoCommand) {

            nomeField.setString(nomeField.getString().toLowerCase());

        }

    

        if (command == sairCommand) {

            notifyDestroyed();

        }

    }

    

    public void startApp() { }

    public void pauseApp() { }

    public void destroyApp(boolean unconditional) { notifyDestroyed(); }

}