Jtable - modo de edição [RESOLVIDO]  XML
Índice dos Fóruns » Interface Gráfica
Autor Mensagem
mario.fts
GUJ Ranger
[Avatar]

Membro desde: 14/05/2008 09:41:06
Mensagens: 817
Localização: São Paulo - ZL
Offline

Tarde....

Tenho um Jtable com renderers e editors personalizados para algumas células. Esses editors são componentes criados aqui no cliente, então tenho que usar eles ao invés dos padrões do swing.

O meu problema é o seguinte: quando o cara começa a editar um campo, um textfield por exemplo, e aperta a seta do teclado, a edição é cancelada, e o cursor se move pra célula do lado.

Eu queria saber como posso mudar esse comportamento, pq o cliente está reclamando que ele vai editando o campo, e se precisa mover o cursor pra corrigir o texto, ele tem que usar o mouse, se usar a seta do teclado a tabela muda ele de célula e ele perde o que tava editando.

já tentei com ListSelectionListener, mas não deu certo, alguma outra sugestão?

This message was edited 1 time. Last update was at 21/01/2010 17:26:48


Mário Amaral Gonçalves

"Ciência da computação tem tanto a ver com o computador como a Astronomia com o telescópio, a Biologia com o microscópio, ou a Química com os tubos de ensaio. A Ciência não estuda ferramentas, mas o que fazemos e o que descobrimos com elas." - Edsger Dijkstra
[Email]
Hellmanss
JavaEvangelist
[Avatar]

Membro desde: 22/04/2009 16:02:06
Mensagens: 336
Localização: Indaial/Blumenau
Offline

Talvez daria para você add um KeyListner, capturar o evento da tecla e usar o método consume


::.. SUN CERTIFIED JAVA PROGRAMMER 5 ..::
[MSN]
mario.fts
GUJ Ranger
[Avatar]

Membro desde: 14/05/2008 09:41:06
Mensagens: 817
Localização: São Paulo - ZL
Offline

Quase deu certo. o problema é que como o evento foi consumido, nem o textfield pega ele, ou seja, o cursor não muda para a letra anterior.

vou colocar um código de exemplo com uma tabela que achei na net:



para testar, eu estou fazendo assim:

clico em uma célula.
digito alguma coisa.
aperto a seta para a esquerda.

nesse momento a edição é finalizada, e o cursor muda para a célula ao lado.

This message was edited 1 time. Last update was at 21/01/2010 16:35:52


Mário Amaral Gonçalves

"Ciência da computação tem tanto a ver com o computador como a Astronomia com o telescópio, a Biologia com o microscópio, ou a Química com os tubos de ensaio. A Ciência não estuda ferramentas, mas o que fazemos e o que descobrimos com elas." - Edsger Dijkstra
[Email]
fabiofalci
GUJ Master
[Avatar]

Membro desde: 11/04/2006 09:23:14
Mensagens: 1057
Localização: Porto Alegre - RS
Offline

Mas esse comportamento não foi inserido por vcs?
Não dá pra ir nesse componente e remover esse comportamento?
[WWW] [MSN] [ICQ]
mario.fts
GUJ Ranger
[Avatar]

Membro desde: 14/05/2008 09:41:06
Mensagens: 817
Localização: São Paulo - ZL
Offline

Não, quando eu uso o componente num form normal o comportamento é igual ao do textfield. o problema é só quando ta dentro da tabela.

Esse exemplo que eu postei usa só os renderers padrões, que são JtextFields, e o comportamento tbm está "errado".

Olha que engraçado.

Se vc clica (simples) em uma célula e começa a editar, e depois usa a seta, ele muda de celula na tabela.

Se vc clica (duplo) em uma célula, ele entra em edição, vc começa a digitar e depois usa a seta, ai ele funciona direito, mudando só a posição do cursor dentro do textfield. O que eu queria é que o comportamento sempre fosse esse.

Mário Amaral Gonçalves

"Ciência da computação tem tanto a ver com o computador como a Astronomia com o telescópio, a Biologia com o microscópio, ou a Química com os tubos de ensaio. A Ciência não estuda ferramentas, mas o que fazemos e o que descobrimos com elas." - Edsger Dijkstra
[Email]
mario.fts
GUJ Ranger
[Avatar]

Membro desde: 14/05/2008 09:41:06
Mensagens: 817
Localização: São Paulo - ZL
Offline

RESOLVIDO:

muito fácil. só colocar



ai quando vc começa a editar a célula pelo teclado e não pelo mouse, ele passa o controle para o componente.

Obrigado a todos pelas respostas, valeu!!!!

Mário Amaral Gonçalves

"Ciência da computação tem tanto a ver com o computador como a Astronomia com o telescópio, a Biologia com o microscópio, ou a Química com os tubos de ensaio. A Ciência não estuda ferramentas, mas o que fazemos e o que descobrimos com elas." - Edsger Dijkstra
[Email]
 
Índice dos Fóruns » Interface Gráfica
Ir para:   
Powered by JForum 2.1.8 © JForum Team