[RESOLVIDO] Listar Dados da Tabela em JTextField

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

Ninguém? D:

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()));

:smiley:

Valeu pela ajuda, até mais.

[]'s