Bonjour,
je souhaite faire le traitement de ma base de données dans un Jtable mais je rencontre quelques difficultés.
Ce traitement consiste à identifier certaines lignes dans mon Jtable selon un argument de 31 par rapport au cumul progressive des chiffres.
Pour y parvenir, j'ai chargé ma base de donnée par ce code :
Puis je modifier mon Jtable en calcul le cumul par ce code ci.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40 public void chargementBase(){ SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy"); MetierImplTontinier metier=new MetierImplTontinier(); Date dateDebut=dateD.getDate(); java.sql.Date SqldateD=new java.sql.Date(dateDebut.getTime()); Date dateFin=dateF.getDate(); java.sql.Date SqldateF=new java.sql.Date(dateFin.getTime()); String numAgent=txtnumAgent.getText(); String type=cmbType.getSelectedItem().toString(); // Chargement de la liste de données provenant de la table A //List<PassageTontinierCaisse> mouvement1=metier.consulterRetraitEnregistreCaisse(SqldateD, SqldateF, numAgent,type); // Chargement de la liste de données provenant de la Table B List<Mouvement> mvt=metier.consulterRetrait(SqldateD, SqldateF, numAgent,type); model=new DefaultTableModel(); model.setColumnIdentifiers(new Object[]{"N°","Date","Client","Agent","Compte", "Nbre","Mise","Type","Cumul","Cumul"}); Object[] rows=new Object[9]; int a=1; //Ajout dans le Jtable des données de la table A for (int i = 0; i < mvt.size(); i++) { rows[0]=a++; rows[1]=sdf.format(mvt.get(i).getDateMouvement()); rows[2]=mvt.get(i).getCompte().getNumClient(); rows[3]=mvt.get(i).getNumAgent(); rows[4]=mvt.get(i).getNumCompte(); //rows[5]=mvt.get(i).getCompte().getClient().getNom()+' '+mvt.get(i).getCompte().getClient().getPrenom() ; rows[5]=mvt.get(i).getNombre(); rows[6]=mvt.get(i).getCompte().getMontantMise(); rows[7]=mvt.get(i).getTypeOp(); rows[8]=mvt.get(i).getNombre()*mvt.get(i).getCompte().getMontantMise(); //rows[6]=mvt.getNumero(); model.addRow(rows); }/**/ table.setModel(model); setTableModelListener(); calculCumul(); }
Pour permettre à Jtable d'être modifiable
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 private void calculCumul() { String numCompte; int lastRow = model.getRowCount() - 1; // dernière ligne //int lastRowDernier = model.getRowCount() ; int solde=0; String compte; // Collections.sort(List<model.getValueAt(i, 4).toString()>, Comparator<model.getValueAt(i, 4).toString()>); for (int i = 0; i < lastRow; i++) { solde+=(int) model.getValueAt(i, 5); model.setValueAt(solde, i, 9); } }
Actuellement le résultat que j'obtient par rapport au cumul n'est pas celui que je veux. Car ce code me permet de faire le cumul pour tous les comptes, mais je souhaite faire le cumul pour chaque compte.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 private void setTableModelListener() { // int lastRow = model.getRowCount() - 1; tableModelListener = new TableModelListener() { public void tableChanged(TableModelEvent e) { int lastColoum = model.getColumnCount(); if (e.getType() == TableModelEvent.UPDATE && e.getFirstRow() < lastColoum && e.getLastRow() < lastColoum && e.getColumn()==1) { //etatRemboursement(); calculCumul(); } } }; table.getModel().addTableModelListener(tableModelListener); }
Mon problème se résume en deux étapes :
1- comment pouvoir faire le cumul progressive par compte;
2- comment pouvoir identifier les lignes qui permettent d'augmenter chaque 31ème unité dans le cumul par compte.
Merci
Partager