Adicionar um TableCellEditor alterou comportamentos de edição que eu não queria

0 respostas
R

Pessoal,

Eu adicionei um tableCellEditor em uma coluna da minha tabela aconteceram os seguintes problemas nesta coluna:

1.Com apenas um clique a célula entra no modo de edição. Gostaria que fossem dois, como nas outras colunas. Para resolver isso eu devo adicionar um mouseListener, certo? Onde eu devo adiciona-lo?
2.Quando a edição é iniciada com o mouse, eu preciso apertar o ENTER duas vezes para finalizar a edição! Porque isso ocorre? Como resolvo isso?
3.Quando eu termino a edição, o focus vai para a próxima célula da coluna e eu queria que permanecesse na mesma. Como eu "seto" o focus em uma célula da tabela?

Segue o meu código:

//Adicionar o tableCellEditor na coluna
		TableColumn colunaTeste=janela.getJtProduto().getColumnModel().getColumn(8);
		colunaTeste.setCellEditor(new EditorTeste(this));
O meu tableCellEditor:
public class EditorTeste extends AbstractCellEditor implements TableCellEditor{
	PedidoFornecedorControlador controlador;
	JFormattedTextField component= new JFormattedTextField(new Float(0.0f));
	JTable tabela=null;

	public EditorTeste(PedidoFornecedorControlador controlador){
		this.controlador=controlador;
	}

	@Override
	public Component getTableCellEditorComponent(JTable table, Object value,boolean isSelected, int row, int column) {
		int resp=JOptionPane.showConfirmDialog(null, "Certeza?");
		if(resp==JOptionPane.CANCEL_OPTION){
			return null;
		}
		controlador.removeListenerProduto();
		component.setValue(value);
		component.selectAll();
		tabela=table;
		return component;
	}
	@Override
	public Object getCellEditorValue() {

		controlador.insereListenerProduto();
		try{
			float valor=Float.valueOf(component.getText().replace(',', '.'));
			component.setValue(valor);
		}catch(NumberFormatException e){
			//this.tabela.editCellAt(this., arg1)
		}
		System.out.println("ai sim: "+component.getValue());
		controlador.insereListenerProduto();
		tabela.grabFocus();
		return component.getValue();  

	}
}
Criado 9 de dezembro de 2009
Respostas 0
Participantes 1