Problema ao trabalhar com tabela

5 respostas
W

bom dia.
Estou trabalhando com uma aplicação com banco de dados e estou fazendo e gostaria de sewlecionar a linha da tabela, então esto definido um tipo de modo de seleção, criei um listner. E chamo um metodo que criei mais abaixo mas está aparecendo este erro que não sei o que pode ser!

Desde já muito Obrigado!!


5 Respostas

brunocl14

posta o código por aki. e explique melhor o q vc ker fazer plz.

W

Boa noite, Bruno

Estou tentando criar um evento na minha tabela onde ele vai mostrar os valores de uma linha selecionada.
Exemplo: eu cadatro um cliente com nome, endereço etc… no meu banco de dados, logo faço uma consulta passando um nome de um cliente por exemplo, Esse cliente aparece na minha tabela mas eu quero que o sistema mostre os dados nos campos abaixo.Eu vou colocar um print da tela da tabela e também o código!

Código que trata o evento de seleção:

TbClientes.setModel(tmClientes);

TbClientes.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);

lsmClientes = TbClientes.getSelectionModel();

lsmClientes.addListSelectionListener(new ListSelectionListener(){

public void valueChanged(ListSelectionEvent e){

if(! e.getValueIsAdjusting()){

TbClientesLinhaSelecionada(tbClientes);

}

}

});

Código que trata a inserção dos dados nos campos:

private void TbClientesLinhaSelecionada(JTable tb){

if(tb.getSelectedRow()!=-1){

TFNome.setText(Clientes.get(tb.getSelectedRow()).getNome());

TFEndereco.setText(Clientes.get(tb.getSelectedRow()).getEndereco());

TFBairro.setText(Clientes.get(tb.getSelectedRow()).getBairro());

TFCidade.setText(Clientes.get(tb.getSelectedRow()).getCidade());

TFUF.setText(Clientes.get(tb.getSelectedRow()).getUf());

TFCEP.setText(Clientes.get(tb.getSelectedRow()).getCep());

TFTelefone.setText(Clientes.get(tb.getSelectedRow()).getTelefone());

}else{

TFNome.setText("");

TFEndereco.setText("");

TFBairro.setText("");

TFCidade.setText("");

TFUF.setText("");

TFCEP.setText("");

TFTelefone.setText("");

}

}

Essa mensagem de erro me parece dizer que não está sendo usado metodo" TbClientesLinhaSelecionada(JTable tb)" mas ele está aí eu criei.

Desde já muito obrigado

Ayanami

Pela mensagem de erro, parece que você está passando um argumento inválido para o método.

Tá tudo certo com relação as cases?
Na screen que você postou no primeiro tópico o método “tbClientesLinhaSelecionada” chamado no valueChanged tava com o “tb” minúsculo…
Tudo bem, aí no post de baixo você já corrigiu isso… mas ainda nesta linha:

TbClientesLinhaSelecionada(tbClientes); // “tbClientes”

Você usou “tbClientes”, mas logo acima no código, você usou “TbClientes”…
Confere essas cases aí…

D

Olá Wagner.

tenta utiliza este metodo - talves resolva o seu problema…

private void SuaTebelaMouseClicked(java.awt.event.MouseEvent evt) {

if (evt.getClickCount() == 1)
    { 
        int linha = suaJtable.getSelectedRow(); 
        TableModel modelo = (TableModel) suaJtable.getModel(); 
        String pesquisa = (String)modelo.getValueAt(linha, 1); // onde linha é a linha selecionada, e este 1 é por exemplo a coluna a ser pesquisada

        try
        {
            // aqui voce chama o seu metodo para buscar - seja ele vindo do banco ou direto da textfield

            preparedStatement stmt = con.prepareStatement("select * from TbClientes where campo ="+grade_pesquisa);
            ResultSet rs = stmt.executeQuery
            while(rs.next)
             {
                mostra_dados(); //irá chamar a função em que irá mostrar os dados no form, no caso o seu TbClientesLinhaSelecionada
             }
              rs.close;
              stmt.close;
              con.close;

        }

        catch(SQLException erro)
        {
            JOptionPane.showMessageDialog(null, "Exceção em: "+erro);
        }
    }
}

qualquer dúvida posta ai - que a gente te ajuda…

W

Ayanami:
Pela mensagem de erro, parece que você está passando um argumento inválido para o método.

Tá tudo certo com relação as cases?
Na screen que você postou no primeiro tópico o método “tbClientesLinhaSelecionada” chamado no valueChanged tava com o “tb” minúsculo…
Tudo bem, aí no post de baixo você já corrigiu isso… mas ainda nesta linha:

TbClientesLinhaSelecionada(tbClientes); // “tbClientes”

Você usou “tbClientes”, mas logo acima no código, você usou “TbClientes”…
Confere essas cases aí…

Pessoal Consegui resolver!!! obrigado a todos pela ajuda!! era bem isso que você falou,estava chamado com tbClientes e o correto era TbClientes

Mais uma Vez Muito Obrigado!!!

Criado 9 de dezembro de 2008
Ultima resposta 10 de dez. de 2008
Respostas 5
Participantes 4