je poste ce soir car j'ai un petit soucis au niveau de l'affichage de ma JTable,
chaque ligne (récupérée par requete SQL) est affichée 3 fois.
Je regarde mon initialisation de TableModel mais rien a faire je vois pas d'ou ca vient.
private void initData() {
try{
Connection conn = ConnectionDB.getInstance();
Statement state = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
ResultSet result = state.executeQuery("SELECT * FROM operation INNER JOIN utilisateur ON operation.opeuti = '"+userActuel.getCode()+"' ORDER BY opedate");
result.last();
Object[][] data;
int nbLignes = result.getRow();
int ligne=0;
data = new Object[nbLignes][5];
result.beforeFirst();
if(result.next()){
do{
data[ligne][0] = result.getDate(1);
if(result.getBoolean(2)){
data[ligne][1] = String.valueOf(result.getFloat(3))+" €";
data[ligne][2] = "";
}else{
data[ligne][2] = String.valueOf(result.getFloat(3))+" €";
data[ligne][1] = "";
}
data[ligne][3] = result.getString(4);
data[ligne][4] = new BoutonTable("Supprimer",ligne);
ligne++;
}while(result.next());
}
else{
data = new Object[1][5];
JOptionPane jop = new JOptionPane();
data[ligne][1] = String.valueOf(Float.parseFloat(jop.showInputDialog(null,"Entrez le solde de départ du compte : ","Solde du compte",JOptionPane.QUESTION_MESSAGE)))+" €";
data[ligne][2] = "";
data[ligne][0] = new SimpleDateFormat("dd/MM/yy").format(new Date());
data[ligne][3] = "SOLDE DE DEPART";
data[ligne][4] = new BoutonTable("Supprimer",ligne);
state.executeUpdate("INSERT INTO OPERATION(opedate,opecredit,opemontant,opelibele,opeuti) VALUES('"+data[ligne][0]+"',true,'"+data[ligne][1]+"','"+data[ligne][3]+"','"+userActuel.getCode()+"')");
}
result.close();
state.close();
this.data = new DataModel(data);
}catch(SQLException e){
e.printStackTrace();
}catch(Exception e){
e.printStackTrace();
}
Merci d'avance
Problème affichage JTable
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.