Inserir Dados em um JTable através de evento em botão! [RESOLVIDO]

3 respostas
andre_bento
Olá galera... to precisando de mais uma ajuda de vcs aqui... Tenho um form em que o usuário digita várias informações sobre uma venda... como quantidade do produto... descrição do produto, tipo de produto e tudo mais... Construi um método que pega essas informações:
public Vector<Mercadoria> dadosEmVetor(){
		
		
		vetor = new Vector<Mercadoria>(30,10);
		try{
			
				String tipo = (String) cmbTipo.getSelectedItem();
				String descricao = (String) cmbDescricao.getSelectedItem();
				String codigo = txtCodigoProduto.getText();
				String precoVenda = txtPrecoVenda.getText();
				String quantidade = (String) cmbQuantidade.getSelectedItem();
				
				Mercadoria mercadoria = new Mercadoria();
				mercadoria.setTipo(tipo);
				mercadoria.setDescricao(descricao);
				mercadoria.setCodigo(codigo);
				mercadoria.setQuantidade(quantidade);
				mercadoria.setPrecoVenda(precoVenda);
								
				
				vetor.add(mercadoria);
		
		}//fim do try
		catch(Exception e){
			JOptionPane.showMessageDialog(null,"Erro durante a gravação dos dados no vetor :"+e.getStackTrace(),"ERRO",JOptionPane.ERROR_MESSAGE);
		}
		
		return vetor;
	}//fim do método dadosEmVetor

Ele está pegando tudo corretamente...
Só que não estou sabendo como faço para adicionar uma linha no JTable com essas informações...
Estou tentando o seguitne código:

public void adicionarLinha(){
		String dMercadoria [][] = dadosMercadorias(dadosEmVetor());
		tabelaModel.addRow(new Object[] {dMercadoria});
		tabelaModel.setDataVector(dadosMercadorias(dadosEmVetor()),campos);
		
		
	}

Mas não tá funcionando.. .ele seta sim os valores.. Mas não está criando outra linha...e sim modificando a linha já existente...
O que estou fazendo de errado?? Não tenho muita experiência com JTable!!!!
Me ajuda ae galeraaaaaaaa!!!

3 Respostas

F

ta usando table model??

poem esses dados em um array e faz um addrow

jessetsilva

tenta ai:

como vc pega um vetor de mervadorias, vai lendo ele e fazendo algo como:

for(int correVetor=0;correvetor<vetor.size();correvetor++)
{

Mercadoria mercadoria = vetor.get(correvetor);

tabelaModel.addRow(new Object[] {mercadoria.getTipo(), mercadoria.getDescricao(),mercadoria.getCodigo(),mercadoria.getQuantidade(),mercadoria.getPrecoVenda});  


}
andre_bento
Caraaaaaaaaaca amigos... Valeu mesmo pela ajuda!!! ae jessetsilva...valeu mesmo pela força cara... consegui resolver meu problema... Ae vai o código para que mais amigos do fórum possam tirar suas dúvidas...
public Mercadoria dadosEmVetor(){
		
		Mercadoria mercadoria = new Mercadoria();
		vetor = new Vector<Mercadoria>(30,10);
		try{
			
				String tipo = (String) cmbTipo.getSelectedItem();
				String descricao = (String) cmbDescricao.getSelectedItem();
				String codigo = txtCodigoProduto.getText();
				String precoVenda = txtPrecoVenda.getText();
				String quantidade = (String) cmbQuantidade.getSelectedItem();
				
				
				mercadoria.setTipo(tipo);
				mercadoria.setDescricao(descricao);
				mercadoria.setCodigo(codigo);
				mercadoria.setQuantidade(quantidade);
				mercadoria.setPrecoVenda(precoVenda);
								
				
				vetor.add(mercadoria);
		
		}//fim do try
		catch(Exception e){
			JOptionPane.showMessageDialog(null,"Erro durante a gravação dos dados no vetor :"+e.getStackTrace(),"ERRO",JOptionPane.ERROR_MESSAGE);
		}
		
		return mercadoria;
	}//fim do método dadosEmVetor
public void adicionarLinha(){
		Mercadoria m = dadosEmVetor();
		tabelaModel.addRow(new Object []{m.getTipo(),m.getDescricao(),m.getCodigo(),m.getPrecoVenda(),m.getQuantidade()});
	//	tabelaModel.setDataVector(dadosMercadorias(dadosEmVetor()),campos);
		
		
	}

Ao invés de retornar um Vector retornei um objeto preenchido de mercadoria... ae foi só pegar os dados mesmo!!!
Funcionando legal aqui galera...
Um grande abraço a todos e valeu mesmo pela força!!!

Criado 5 de dezembro de 2008
Ultima resposta 5 de dez. de 2008
Respostas 3
Participantes 3