Como Capiturar Valores de uma tabela Java que lista dados do Mysql

4 respostas
java
JoaoLopes
if(TProdutos.getSelectedRow() != -1 )
{                
      String ID =(TProdutos.getValueAt(TProdutos.getSelectedRow(),0).toString());
      int id = Integer.parseInt(ID);
      String Nome =(TProdutos.getValueAt(TProdutos.getSelectedRow(),1).toString());
      String CodB =(TProdutos.getValueAt(TProdutos.getSelectedRow(),2).toString());
      String Lote =(TProdutos.getValueAt(TProdutos.getSelectedRow(),3).toString());
      String Validade =(TProdutos.getValueAt(TProdutos.getSelectedRow(),4).toString());
      String Preco =(TProdutos.getValueAt(TProdutos.getSelectedRow(),5).toString());
      double preco = Double.parseDouble(Preco);
      String Desde =(TProdutos.getValueAt(TProdutos.getSelectedRow(),6).toString());
}

Eu não estou conseguindo capturar os valores para usa-los em conversões e cálculos , alguém pode me ajudar ?

4 Respostas

Rodrigo_Void

Não entendi seu problema, pode ser mais específico?
Se está dando erro, poste-o.

C

João, se você criar um TableModel primeiro, para depois capturar os valores e usa-los será bem mais simples.
Caso não queira criar um, tente preencher sua tabela com um List contendo os resultados da consulta no MySQL e buscar a posição nele de acordo com a linha selecionada, acredito que será mais simples trabalhar e evitará conversões.

JoaoLopes
Eu criei uma tabela que  os valores do mysql , até ai  funcionando perfeitamente ,  que eu quero que o usuário possa editar os valores direto na Jtable e click em um botão salvar para salvar todos os valores editados de vez , eu consegui capturar os valores  que meu programa  consegue salvar edições feitas apenas na primeira linha .

Connection con = (Connection) ConnectionFactory.getConnection();

PreparedStatement stmt = null;

int valor = TProdutos.getRowCount();

for(int i=0 ;i < valor ;i++){
String ID =(TProdutos.getValueAt(i,0).toString()); 
      int id = Integer.parseInt(ID);
      String Nome =(TProdutos.getValueAt(i,1).toString()); 
      String CodB =(TProdutos.getValueAt(i,2).toString()); 
      String Lote =(TProdutos.getValueAt(i,3).toString());  
      String Validade =(TProdutos.getValueAt(i,4).toString()); 
      String Preco =(TProdutos.getValueAt(i,5).toString()); 
      double preco = Double.parseDouble(Preco);
      String Desde =(TProdutos.getValueAt(i,6).toString()); 
  

    try {
        stmt = con.prepareStatement("UPDATE produtos SET NOME =?,CODIGO_BARRA =?,LOTE =?,VALIDADE =?,PRECO =?,DESDE_ESTOQUE =? WHERE PRODUTO_ID =?");
        stmt.setString(1,Nome);
        stmt.setString(2,CodB); 
        stmt.setInt(3,Integer.parseInt(Lote));
        stmt.setString(4,Validade);
        stmt.setDouble(5,preco);
        stmt.setString(6,Desde);
        stmt.setInt(7,id);
        
        stmt.executeUpdate();
   
    
      JOptionPane.showMessageDialog(null,"Atualizado com sucesso!");
    }catch (SQLException ex) {
        JOptionPane.showMessageDialog(null,"Error ao Atualizar"+ex);
    }
    
   
                 
   
      
}   
      ConnectionFactory.closeConnection(con, stmt);
          
}
Rodrigo_Void

Certo, então reforço a dica anterior de usar um TableModel(com a devida tipagem). É o primeiro passo. Custa um pouco mais para implementar mas com certeza será mais tranquilo chegar ao seu objetivo.

Criado 14 de janeiro de 2017
Ultima resposta 16 de jan. de 2017
Respostas 4
Participantes 3