Atualizando o jTable em tempode execução

1 resposta
R

Eu gostaria de inserir dados em um jTable em tempo de execução, s situação é o seguinte…

Estou fazendo uma tela para inclusão de itens de pedidos, mas o usuário precisa escolher o preço e definir o valor e clicar em ‘add item’, quando clicar a informação é enviada para o jTable para que o usuário veja os itens que está adicionando antes de gravar no banco de dados…

Estou utilizando uma classe e extendendo a classe AbstractTableModel e implementando o observer, se eu utilizar o método update da interface observer eu consigo atualizar o jTable com as novas informações? Se sim como posso fazer?

1 Resposta

Eric_Yuzo

O table model já oferece uma implementação do padrão Observer, só que com o nome "Listener". E o AbstractTableModel disponibiliza métodos que informam para os listeners (observers) que os dados foram atualizados.

Dê uma olhada na documentação sobre os métodos iniciados com "fire", são eles que fazem o papel de informar atualização na tabela. Existe um para cada situação. Por exemplo:
// Método que adiciona um item ao seu TableModel.
	public void addItem(Item item) {
		// Adiciona o item.
		listaDeItens.add(item);

		// Pega a quantidade de registros e subtrai um para achar o último índice da tabela.
		int indice = getRowCount() - 1;

		// Método que reporta a inserção de linhas. A JTable recebe a notificação e redesenha permitindo que a atualização seja visualizada.
		fireTableRowsInserted(indice, indice);
	}
Este é um exemplo usando o método "fireTableRowsInserted". Toda vez que o método "addItem" for chamado no TableModel, a JTable já fica sabendo da atualização e redesenha a(s) linha(s) passadas no parãmetro. Basta ver qual dos métodos "fire" você precisa e chamar direto no TableModel.
Criado 10 de março de 2011
Ultima resposta 10 de mar. de 2011
Respostas 1
Participantes 2