[Java] Integer.parseInt

Résolu
Bonjour, voila sachant que que la colonne n"est pas de type integer elle est de type string mais c,tien des numero

erreur incompatible type if(Integer.parseInt(fid.getText()) == dt.getValueAt(j, 0))

private void btnAjouterActionPerformed(java.awt.event.ActionEvent evt) {                                           
     try {
         //verifier si deja existe 
         boolean b=false;
         for(int j = 0; j <dt.getRowCount() ;j++){
             
         if(Integer.parseInt(fid.getText()) == dt.getValueAt(j, 0)){// <gras>erreur incompatible type</gras>
         b=true;    
         break;
         
             }    
         }
         if (b==false){
         St.executeUpdate("Insert into communes Values ("+fid.getText()+",'"+fnom.getText()+"','"+fadresse.getText()+"','"+fage.getText()+"')");
         Affichercomn();//recharger la liste des communes
         JOptionPane.showMessageDialog(null, "une commune est ajoutée");    
             
         }else{
           JOptionPane.showMessageDialog(null, "num deja excute ");    
           fid.setText(" ");
         }
     }catch (Exception e){
      
         JOptionPane.showMessageDialog(null,"erreur ajout des communes \n"+ e.getMessage());//54h48
     }<code java>
</code>

1 réponse

  1. Salut,

    Il faut plutôt faire un


    Integer.parseInt(fid.getText()).equals(dt.getValueAt(j, 0)));
    1. Modérateur
      Non, Integer.parseInt renvoie un int, donc ce n'est pas un objet, on ne peut pas lui appliquer de méthode comme equals.

      Ici le problème c'est que dt (dont on ne connait pas le type, mais qui est certainement un TableModel) va renvoyer un Object avec la méthode getValueAt, il faut donc le convertir en int.

      if (Integer.parseInt(fid.getText()) == (int) dt.getValueAt(j, 0))
    2. merci bc e66 et surtout KX sa ma vraiment aidé seulement quant je exécute cette requete qui est d'ajoute
      je comprend pas pourquoi au niveau du else{
      JOptionPane.showMessageDialog(null, "num deja excute ");
      fid.setText(" ");
      }

      ca marche pas
    3. KX du coût ca a ressuie mais sa a généré une erreur il reconnais plus et il fait pas la verification
      il point directe sur
      catch (Exception e){

      JOptionPane.showMessageDialog(null,"erreur ajout des communes \n"+ e.getMessage());
    4. Modérateur
      C'est quoi l'exception ? Peut-être que getValueAt(j, 0) n'est pas un entier, mais dans ce cas il faudrait savoir ce que tu as mis dedans... il faut peut-être aussi le convertir !
    5. fid.setText(dt.getValueAt(i, 0).toString());//Represente numuro de la ligne et de colone
              fnom.setText(dt.getValueAt(i, 1).toString());
          fadresse.setText(dt.getValueAt(i, 2).toString());
              fage.setText(dt.getValueAt(i, 3).toString());