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

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 ?

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

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.

Eu criei uma tabela que lê os valores do mysql , até ai tá funcionando perfeitamente , só 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 só que meu programa só 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);
          
}

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.