Bom, minha tabela tem apenas 9 colunas, deixei só com as informações básicas do paciente para não deixar a JTable muito grande.
Eu já estou listando todos esses campos e inserindo nos meus 9 JTextFields.
Minha dúvida é: Se eu tenho 9 colunas na tabela da pra setar os outros dados do paciente sem estar nela ?
Ex:
Tenho os campos ID e Nome na tabela, e eu preciso setar nos JTextFields ID, Nome e Cidade. Como eu faço pra fazer isso sem o campo Cidade estar na tabela?
Quando estou selecionando a tabela:
[code]
private void jTTabelaLinhaSelecionada(JTable tabela) {
if (jTTabela.getSelectedRow() != -1) {
hc.habilitaCampos(pnPaciente);
//habilitando os botões para fazer as alterações corretamente
// Habilitando os ComboBox para que seja a atualização
hcb.habilitaComboBox(pnPaciente);
ctCodigo.setText(String.valueOf(listaPaciente.get(tabela.getSelectedRow()).getCodigo()));
ctDtCadastro.setText(listaPaciente.get(tabela.getSelectedRow()).getDataCadastro());
ctNome.setText(listaPaciente.get(tabela.getSelectedRow()).getNome());
ctIdade.setText(listaPaciente.get(tabela.getSelectedRow()).getIdade());
ctCidade.setText(listaPaciente.get(tabela.getSelectedRow()).getCidade());
ctEmail.setText(listaPaciente.get(tabela.getSelectedRow()).getEmail());
ctTelResidencial.setText(listaPaciente.get(tabela.getSelectedRow()).getTelResidencial());
ctTelCelular.setText(listaPaciente.get(tabela.getSelectedRow()).getTelCelular());
ctTelContato.setText(listaPaciente.get(tabela.getSelectedRow()).getTelContato());
// Aqui pegar os outros campos que não estão na tabela.
} else {
lc.limpaCampos(pnPaciente);
}
}[/code]
[]'s
Bom…teoricamente você busca esses registros de uma base de dados certo?
Uma sugestão…
Em vez de fazer a ação para preencher os seus textfields lendo informações da tabela,
leia somente o id(no seu caso Código) do cliente da sua tabela, depois faça uma consulta no banco de dados e traga todas as informações que você acha necessário
Certo…
Daqui a pouco posto o resultado.
[]'s
Eu estava fazendo dessa forma, só que assim não retorna os registro que não estão na tabela, quando eu seleciono a primeira linha ele seta os campos da tabela, quando seleciono outra linha os campos ficam com os mesmos valores da primeira linha selecionada.
[code]private void jTTabelaLinhaSelecionada(JTable tabela) {
Conexao conexao = new Conexao();
if (jTTabela.getSelectedRow() != -1) {
hc.habilitaCampos(pnPaciente);
hcb.habilitaComboBox(pnPaciente);
try {
dao.getListaCodigo("%" + String.valueOf(listaPaciente.get(tabela.getSelectedRow()).getCodigo()) + "%");
// mostraPesquisa(listaPaciente);
} catch (SQLException ex) {
Logger.getLogger(FormPesquisaPaciente.class.getName()).log(Level.SEVERE, null, ex);
}
for (int i = 0; i < listaPaciente.size(); i++) {
lbCodigo.setText(String.valueOf(listaPaciente.get(i).getCodigo()));
lbDtCadastro.setText(listaPaciente.get(i).getDataCadastro());
lbNome.setText(listaPaciente.get(i).getNome());
lbIdade.setText(listaPaciente.get(i).getIdade());
lbCidade.setText(listaPaciente.get(i).getCidade());
lbEmail.setText(listaPaciente.get(i).getEmail());
lbTelResidencial.setText(listaPaciente.get(i).getTelResidencial());
lbTelCelular.setText(listaPaciente.get(i).getTelCelular());
lbTelContato.setText(listaPaciente.get(i).getTelContato());
lbCidade.setText(listaPaciente.get(i).getCidade());
lbBairro.setText(listaPaciente.get(i).getBairro());
lbEndereco.setText(listaPaciente.get(i).getEndereco());
lbCPF.setText(listaPaciente.get(i).getCpf());
lbRG.setText(listaPaciente.get(i).getRg());
lbResponsavel.setText(listaPaciente.get(i).getResponsavel());
lbSexo.setText(listaPaciente.get(i).getSexo());
lbTipoSanguineo.setText(listaPaciente.get(i).getTipoSanguineo());
}
} else {
lc.limpaCampos(pnPaciente);
}
}
[/code] E dessa outra forma ele não retorna nenhum registro:
[code]try {
conexao.getConection();
Statement stmt = conexao.getConection().createStatement();
ResultSet rs = stmt.executeQuery(“SELECT * FROM paciente WHERE usuario = '” + String.valueOf(listaPaciente.get(tabela.getSelectedRow()).getCodigo()));
while (rs.next()) {
lbCodigo.setText(String.valueOf(rs.getString(“codigo”)));
…
}
}catch (SQLException e) {
}[/code]
To errando em que parte? D:
[]'s
Você tem como chave primária de paciente uma String? a coluna usuário?
se sim, aqui está um erro....
está faltando um ' no fim da string teria que ser assim
[code]ResultSet rs = stmt.executeQuery("SELECT * FROM paciente WHERE usuario = '" + String.valueOf(listaPaciente.get(tabela.getSelectedRow()).getCodigo()) + "'"); [/code]
mas se a coluna usuário não for a sua chave primária tem que mudar o seu WHERE para ..... WHERE codigo = " + listaPaciente.get(tabela.getSelectedRow()).getCodigo() ...
Coloque um e.printStackTrace dentro do seu catch que deve mostrar o erro que está acontecendo....certamente é a query do seu sql que está errado
Você tem como chave primária de paciente uma String? a coluna usuário?
se sim, aqui está um erro…
está faltando um ’ no fim da string teria que ser assim
mas se a coluna usuário não for a sua chave primária tem que mudar o seu WHERE para … WHERE codigo = " + listaPaciente.get(tabela.getSelectedRow()).getCodigo() …
Coloque um e.printStackTrace dentro do seu catch que deve mostrar o erro que está acontecendo…certamente é a query do seu sql que está errado
Mais uma coisa…se voce usar o “%” na sua query…vai ter que usar o LIKE também na sua query sql…senão ele nunca vai achar a string procurada
Nuss que descuido… Tinha aproveitado o código de outra parte do sistema…
Em vez de usuario é codigo…
ResultSet rs = stmt.executeQuery("SELECT * FROM paciente WHERE codigo = " + String.valueOf(listaPaciente.get(tabela.getSelectedRow()).getCodigo()));
Valeu pela ajuda, até mais.
[]'s