Recuperar campos do Banco de dados em um JTable com numero de colunas menor

2 respostas Resolvido
Allison

Bom dia!
Senhores, eis minha questão:
Eu possuo uma tabela no meu banco, que contem 20 campos, onde faço o cadastro desse item através de uma tela que possui os JTextFields e mais em baixo uma tabela. Minha ideia é inserir, e mostrar todas os registros da tabela do banco no JTable.
A bronca é, n tem condição de eu mostrar as 20 colunas no table, foi o espaço não dá e acho que fica cansativo ao usuário, aí a ideia seria passar no Jtable 5 colunas que eu julguei mais importantes, e ao clicar em uma dessas linhas, ele carregar as informações nos JTextFilds mais acima, dando a possibilidade de visualização e edição caso o usuário queira. O problema é que eu consegui fazer da seguinte forma:
Pegando as informações referentes as quantidades das colunas do JTable (segue Codigo).

tabelaEmpresasCadastradas.addMouseListener(new MouseAdapter() {
		@Override
		public void mouseClicked(MouseEvent arg0) {
			
			if (arg0.getClickCount() == 1) {
				Object codigo = (tabelaEmpresasCadastradas.getValueAt(tabelaEmpresasCadastradas.getSelectedRow(),
						0));
				String id = codigo.toString();
				txtCodigo.setText(id);

				Object empresa = (tabelaEmpresasCadastradas.getValueAt(tabelaEmpresasCadastradas.getSelectedRow(),
						1));
				String nomeEmpresa = empresa.toString();
				txtEmpresa.setText(nomeEmpresa);
				txtEmpresa.setEnabled(true);
				txtEmpresa.setEditable(false);

				Object cnpj = (tabelaEmpresasCadastradas.getValueAt(tabelaEmpresasCadastradas.getSelectedRow(), 2));
				String nomeCnpj = cnpj.toString();
				txtCnpj.setText(nomeCnpj);

				Object responsavel = (tabelaEmpresasCadastradas
						.getValueAt(tabelaEmpresasCadastradas.getSelectedRow(), 3));
				String nomeResponsavel = responsavel.toString();
				txtResponsavel.setText(nomeResponsavel);

				Object telefone = (tabelaEmpresasCadastradas.getValueAt(tabelaEmpresasCadastradas.getSelectedRow(),
						4));
				String stringTelefone = telefone.toString();
				txtTelefone.setText(stringTelefone);									
			}
		}
	});

O que ocasiona o seguinte: Se eu quiser pegar informações que não estão expostas no JTable, eu não consigo.
Alguém já fez algo parecido?
Desde já agradeço a atenção!

2 Respostas

J
Solucao aceita

eu faço da seguinte forma:
pego no banco apenas os campos que quero visualizar na jTable, e o mais importante, o id_cliente coloco na table tbm:
ID | Nome | Telefone | ETC…

desta forma, vc consegue pegar os restante das informações… suponhamos que vc clique em uma linha, use o codigo

String idCliente = jTable1.getValueAt(jTable1.getSelectedRow(), 0).toString();

desta forma vc sempre vai ter o ID do cliente para pegar o restante das informações:

"select * from clientes where id_cliente = "+idCliente

Allison

Obrigado Jean!
Estava um pouco enrolado, mas resolvi!
Eu já tinha um método criado. Como estou usando MVC, tinha no meu na minha classe DAO todos os metodos do CRUD criado.

Recuperei o Id, como vc me indicou, e chamei meu método de consulta, e passei o id, ficando assim:

if (arg0.getClickCount() == 1) {
			       empresa.setId((int)tabelaEmpresasCadastradas.getValueAt(tabelaEmpresasCadastradas.getSelectedRow(), 0));
		           edao.concultaEmpresa(empresa); }

Muito obrigado!

Criado 23 de dezembro de 2015
Ultima resposta 23 de dez. de 2015
Respostas 2
Participantes 2