JTable ENTER

4 respostas
R

Estou utilizando um JTable, porém gostaria que ao usuário clicar ENTER, ao invés de ir para linha de baixo o foco deveria ir para a coluna ao lado, assim como ocorre com o TAB. Tentei procurar por controlar o foco por linha e coluna ou até mesmo fazer com que o ENTER tenha o comportamento alterado para TAB, mas não consegui nada que me ajuda-se.

Desde já agradeço.

Obrigado.

4 Respostas

lina

Oi,

Acho que já respondi isso aqui no fórum...

Uma certa vez, fiz um método para isso! você poderá utiliza-lo

public
void		TableEnterAction(final JTable ao_table) {

  InputMap 
  im = ao_table.getInputMap(ao_table.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT);   
		  
  KeyStroke lo_key_enter = KeyStroke.getKeyStroke("ENTER");   
	  
  im.put(lo_key_enter, im.get(KeyStroke.getKeyStroke(KeyEvent.VK_GREATER, 0)));  
	        
  Action
  enterAction = new AbstractAction() {	

        	public
        	void	actionPerformed(ActionEvent e)
        	{
        		// Faz o que quiser.
        	}
	}; 

	ao_table.getActionMap().put(im.get(lo_key_enter), enterAction); 
}

Tchauzin!

lina

Oi,

O código ficou um pouco torto rsrs!
Faz um Copy and Past no notepad que ficará melhor de visualiza-lo!

Tchauzin!

R

Agradeço a ajuda, desculpa a falta de sabedoria mas o objetivo é justamente que o foco do enter dentro da tabela, tem de ir para a célula ao lado, e não para a debaixo, eu até confesso que tentei entender seu raciocinio e sua lógica, mas infelizmente não consegui.

lina

Oi,

Após a criação da sua tabela, chame este método (passando como parametro a sua tabela criada).

Este método será responsável por alterar a funcionalidade da tecla ENTER de sua JTable.

Na parte em que coloquei o comentario // Faz o que quiser, você deverá colocar o foco para a celula ao lado.

Estou sem IDE aqui para saber exatamente o comando, porém acho que deve ser algo como.: tabela.setSelectedCell(tabela.getSelectedRow(), tabela.getSelectedColumn()+1);

Algo do tipo…

Tchauzin!

Criado 17 de agosto de 2009
Ultima resposta 18 de ago. de 2009
Respostas 4
Participantes 2