| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 21/01/2010 15:46:49
|
mario.fts
GUJ Ranger
![[Avatar]](/images/avatar/9e96d422fba85185a33829439f5df09d.jpg)
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 |
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 21/01/2010 16:07:05
|
Hellmanss
JavaEvangelist
![[Avatar]](/images/avatar/0d9e6d7bba3347324616373b33e3bed9.jpg)
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 ..::
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 21/01/2010 16:30:10
|
mario.fts
GUJ Ranger
![[Avatar]](/images/avatar/9e96d422fba85185a33829439f5df09d.jpg)
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 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 21/01/2010 16:45:39
|
fabiofalci
GUJ Master
![[Avatar]](/images/avatar/c359889a833e7612e0cff1dc69d272bc.png)
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?
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 21/01/2010 16:54:50
|
mario.fts
GUJ Ranger
![[Avatar]](/images/avatar/9e96d422fba85185a33829439f5df09d.jpg)
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 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 21/01/2010 17:26:21
|
mario.fts
GUJ Ranger
![[Avatar]](/images/avatar/9e96d422fba85185a33829439f5df09d.jpg)
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 |
|
|
 |
|
|
|
|