Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Henrique Coutinho

Problema para buscar valores de um TextFild

Recommended Posts

Bem, tenho uma tabela (JTable) que manda as informações para alguns TextField, gostaria de pegar as informações do banco, referente as infoamaçoes que sao impressas na tabela.

 

DefaultTableModel chamados = (DefaultTableModel) tblChamadosAberto.getModel();

Vector dados = (Vector) chamados.getDataVector().get(tblChamadosAberto.getSelectedRow());

this.txtDataChamado.setText((String)dados.get(0));

this.txtHoraChamado.setText((String)dados.get(1));

this.txtUsuario.setText((String)dados.get(2));

this.jtDescricaoProblema.setText((String)dados.get(3));

this.txtTipoProblema.setText((String)dados.get(4));

this.txtUrgencia.setText((String)dados.get(5));

 

Através desses comandos, eu jogo as informações da tabela, no TextField que eu quiser. Se eu clicar na primeira linha, ele joga nos TextFields os dados da primeira linha, se for a quarta, mostra os dados da quarta, e assim em diante... Agora, quero pegar todas as informações do banco referente a linha que eu estiver selecionado para inserir em uma outra tabela auxiliar que terão esses valores e mais alguns outros...

 

Desde já obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se você tiver um campo id na tabela, basta recuperá-lo e fazer um select. Caso contrário, faça um select utilizando todos os parâmetros como filtro. Ex.:

select * from nometabela where id = ?

Ou:

select * from nometabela where datachamado = ? and horachamado = ? and usuario = ? and descricaoproblema = ? and tipoproblema = ? and urgencia = ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Supondo que voce tenha uma classe definida como ChamadoAberto que representa uma entidade de banco de dados, voce precisa simplesmente sobrescrever o metodo equals. Assim voce pode recuperar um objeto do banco de dados, do JTable, dos JTextFields e compara-los com o metodo equals.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Entao, já consegui pegar o valor da linha, agora, eu preciso jogar essa variável "linhaAtual" para um outro método, como posso fazer???

 

Segue o código para maior entendimento.

 

private void tblChamadosAbertoKeyReleased(java.awt.event.KeyEvent evt) 
{
        //Aqui, vou pegando a linha que está selecionada na tabela
        DefaultTableModel chamados = (DefaultTableModel) tblChamadosAberto.getModel();
        Vector dados = (Vector) chamados.getDataVector().get(tblChamadosAberto.getSelectedRow());
        
        //Aqui, pego o valor da linha selecionada
        tblChamadosAberto.getSelectionModel().addListSelectionListener
        (new ListSelectionListener()
            {
                 public void valueChanged(ListSelectionEvent event)
                {
                    int linhaAtual = tblChamadosAberto.getSelectedRow() + 1;
                    System.out.println (linhaAtual);
                }
            }
        );
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Uma vez recuperado os valores da linha selecionada como um objeto Vector, você pode gerar facilmente um novo modelo de tabela (será que é isso que você quer??? :wacko: ).

Vector dados = (Vector) chamados.getDataVector().get(tblChamadosAberto.getSelectedRow());
DefaultTableModel model = new DefaultTableModel(dados.toArray(), new Object[] {"coluna1", "coluna1", "etc"});
novaTabela.setModel(model);

Compartilhar este post


Link para o post
Compartilhar em outros sites

Uma vez recuperado os valores da linha selecionada como um objeto Vector, você pode gerar facilmente um novo modelo de tabela (será que é isso que você quer??? :wacko: ).

Vector dados = (Vector) chamados.getDataVector().get(tblChamadosAberto.getSelectedRow());
DefaultTableModel model = new DefaultTableModel(dados.toArray(), new Object[] {"coluna1", "coluna1", "etc"});
novaTabela.setModel(model);

 

Não, como eu já tenho o valor da linha, eu vou fazer a comparação com o id, como voce mesmo sugeriu anteriormente... só que, o meu select está em outro método, e como este método é privado, eu nao consegui ainda fazer com que ele busque as informações deste método privado (que é a linha atual que será selecionada)para fazer as comparações em outro método.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Na classe que representa a entidade de banco de dados voce pode fazer um método que recebe um inteiro e retorna um objeto.

O inteiro representa o id. Ficaria como o Vergil sugeriu no primeiro post.

 

select * from nometabela where id = parametroMetodo

Isso vai funcionar se a variável linhaAtual pegar o id e não a linha do registro selecionado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.