Pegar valor de uma célula do JTable enquanto o texto ainda é digitado!

2 respostas
rdantas

Boa tarde pessoal,

Estou trabalhando em um JTable e preciso pegar o valor que o usuário está digitando na célula antes dele atualizar seu valor (selecionando outra célula, ou pressionando o ENTER). A minha intenção é fazer um auto completar para facilitar a digitação do nome do cliente. Por exemplo, vou buscar o nome do “Fulano da Silva”, então quando eu digitar “F”, aparecerá uma lista de todos os clientes que começam com “F”.

Bom, já procurei aqui mesmo no Guj, mas só encontrei o getValueAt, que me retorna o valor depois que o usuario já digitou tudo e atualizou o valor da célula. Já fiz testes com o minhaJTable.getCellEditor().getCellEditorValue() mas também não deram certo. Também já procurei em http://www.guj.com.br/posts/list/13322.java mas não encontrei nada do tipo. Já tentei fazer um buffer com o evento KeyTyped(), mas não ficou 100% eficiente.

Grato pel a atenção!!

Rdantas

2 Respostas

ViniGodoy
  1. Crie um JTextField que tenha esse recurso de auto-completar;

  2. Adicione ele como DefaultCellEditor para uma classe qualquer em sua table (por exemplo, Cliente.class);

  3. Modifique seu TableModel para que, para a coluna do cell editor, o método getColumnClass retorne Cliente.class;

rdantas

Valew Vinicius, funcionou blz!!! :smiley:

Criado 6 de agosto de 2007
Ultima resposta 9 de ago. de 2007
Respostas 2
Participantes 2