Focus em Componentes

Olá estou com uma duvida, possuo esta tela abaixo e gostaria de no momento em que esta tela fosse exibida o focus fosse para a tabela, pq de inicio ela esta indo para o campo cpf, alguem sabe me dizer como mudar o focus de uma tela? Obrigado.

opa,
então cara faz o seguinte: em vez de vc dar o display no Form usando “getDisplay().setCurrent(form);” dá um display no Item, assim: “getDisplay().setCurrentItem(item)”. Esse setCurrentItem só vai funcionar se o Item já estiver adicionado a um Displayable, se não estiver ele não funciona. O que ele faz é basicamente igual ao setCurrent só que ele mostra o displayable que contém o Item passado como argumento e de quebra foca o Item.

acho que isso deve resolver seu problema…
t+

Amigo, valeu pela ajuda, resolveu meu problema, há tu sabe me dizer como eu faço para que no momento em que eu estiver em cima de um textfield por exemplo e clicar o botão do meio do celular (select) ou o botão 5 ele por exemplo limpe o textfield? é que eu quero trabalhar com eventos. Eu sei que se eu utilizar um canvas posso utilizar o keypressed assim pego o nome ou codigo da tecla pressionada, mas no momento eu to com um form, e não da pra extender ele pra canvas para fazer uso deste recurso, ai estou pedindo ajuda para um outra idéia.

opa, então o que vc poderia fazer é adicionar um Command ao TextField. Se vc der uma olha vc vai ver que tem um método addCommand() na classe TextField. O seu midlet deve, também, implementar a classe “ItemCommandListener”. Daí vc implementa o método CommandAction(Command command, Item item). Ele funciona de forma similar ao CommandAction(Command command, Displayable displayable), só que com item. Daí é só verificar o command de qual item tá acionando o método e fazer o tratamento. É bem simples, segue um exemplo:

//Declaração do MIDlet
public class Supremo extends MIDlet implements CommandListener,  ItemCommandListener, ItemStateListener {
.
.
.
public void commandAction(Command command, Item item) {
        if (item == btProcurar) {
            if (command == itemCm) {
                if (get_orcTfCodProd().getString().equals("0") || get_orcTfCodProd().getString().equals("")) {
                    getDisplay().setCurrent(get_consultaArt()); //Abre a tela de consulta de produtos
                } else { //caso o código do produto tenha sido inserido
                    if (busca == null)
                        busca = new ConsultaProd();
                    
                    switch (busca.getProd(Integer.parseInt(get_orcTfCodProd().getString()),
                            "", 0, 0, 0)){ //Busca o item com o código inserido. Se encontrar o coloca em um Vector()
                        case 0: //nao achou
                            get_msg().setString("Nenhum produto foi encontrado");
                            get_orcTfCodProd().setString("");
                            getDisplay().setCurrent(get_msg(), get_orcAddProd());
                            break;
                        case -1: //erro
                            get_msg().setString("A busca retornou erro");
                            getDisplay().setCurrent(get_msg(), get_orcAddProd());
                            break;
                        case 1:
                            prodToOrc(0); //'0' será utilizado como índice do Vector de produtos selecinados
                            break;
                    }
                }
            }
        } else if (item == orcBtCliente) {
            if (command == itemCm) {
                get_tfCodFilial().setString("1");
                getDisplay().setCurrent(get_ConsultaCli());
            }
        } else if (item == btBuscarPrazo) {
            if (command == itemCm) {
                    buscarPrazos(get_tfCodPrazo().getString()); 
            }
        }
}
.
.
.

ok?
qualquer problema posta ae.
t+

sim mas ai eu fico amarrado ao menu, item. Correto toda vez que eu quiser acionar este evento vou ter que precionar no menu depois item, pois o item vai ficar como um command. Correto?

Bom, eu nunca usei isso com TextField, eu só uso com StringItem. E quando o StringItem está selecionado eu posso tanto ir no menu e selecionar o Command do Item quanto pressionar o botão de ação padrão que também é acionado o Command default do Item. Pra isso funcionar você precisa, de forma similar a um displayable, usar o método setItemCommandListener() e o setDefaultCommand, pois pode ser adicionado mais de um Command para um mesmo item e se faz necessário indicar qual o default pra se poder utilizar o botão de ação.
Segue a forma como uso:

public StringItem get_btProcurar() {
        if (btProcurar == null) {
            btProcurar = new StringItem(null, "Buscar", Item.BUTTON);
            btProcurar.addCommand(get_itemCm()); //get_itemCm() retorna um Command
            btProcurar.setItemCommandListener(this);
            btProcurar.setLayout(Item.LAYOUT_RIGHT | Item.LAYOUT_NEWLINE_AFTER);
            btProcurar.setDefaultCommand(get_itemCm()); 
        }
        return btProcurar;
    }

Até onde eu entendo isso funciona para qualquer Item. Tenta usar aí com o TextField dessa meneira, se não conseguir me fala que a gente tenta fazer funcionar. :slight_smile:

t+