[RESOLVIDO] Focar celula na JTable

1 resposta
G

Olá,

Tenho uma JTable estanciada e preciso que ao clicar em uma botao ADICIONAR, seja criada uma linha na JTable e que determinada celular já fique com o cursor piscando para que a pessoa inicie a digitação.

A principio consegui fazer com que a Linha e a Celula que quero fique selecionada, mas o cursor nao aparece, sendo necessario que o usuario clique sobre a celula para digitar.

A celula que deve iniciar focada é DESCRICAO.

tabela = new JTable();
tabela.setModel(new DefaultTableModel(new Object [][] { }, new String [] {"","Descrição", "Data ", "Valor (R$)"}));

/*** ACAO DO BOTAO ADICIONAR ***/
DefaultTableModel dtm = (DefaultTableModel) tabela.getModel();
dtm.addRow(new Object[]{"","","",""});
int linha = tabela.getRowCount() - 1;
tabela.setRowSelectionInterval(linha, linha);
tabela.editCellAt(linha, 1);
/*** ACAO DO BOTAO ADICIONAR ***/

Bom, conforme mencionado acima, o trecho de codigo apresentado esta fazendo tudo que preciso. Meu unico incoveniente é que preciso mesmo assim clicar sobre a celula para o cursor ficar disponivel para a digitacao.

Alguem tem alguma sugestao ?

Obrigado.

1 Resposta

G

Olá pessoal,

Para os interessados ai esta a nova implementacao do botao ADICIONAR que resolveu o problema.

<blockquote>

DefaultTableModel dtm = (DefaultTableModel) tabela.getModel();

dtm.addRow(new Object[]{"","","",""});

int linha = tabela.getRowCount() - 1;

int coluna = 1;

tabela.changeSelection(linha, coluna, false, false);

tabela.editCellAt(linha, coluna);

Component celula = tabela.getEditorComponent();

if( celula != null ) {

celula.requestFocus();

}</blockquote>

Um Abraco!

Criado 21 de junho de 2006
Ultima resposta 21 de jun. de 2006
Respostas 1
Participantes 1