Bonjour,
Je me trouve face à un petit soucis. Lorsque j'affiche ma jtable, si dans une colonne ayant une classe Date, la première valeur est nulle ou chaine vide, le renderer n'est pas appliqué. J'ai donc "";"";"";"";"";"Wed Mar 17 00:00:00 CET 2004" qui s'affiche.
C'est bof comme résultat. Quelqu'un pourrait-il m'expliquer comment éviter ceci.
J'ai essayé de parcourir les lignes si la cellule est vide ou nulle mais ca foire complètement.
Je tiens à préciser que les headers sont créer en parcourant la classe de la liste des données.
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 public class DateCellRenderer extends DefaultTableCellRenderer { private SimpleDateFormat formatDate = new SimpleDateFormat("dd/MM/yy"); @Override public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) { super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column); if((value=="")||(value==null)){ setText(""); }else{ setText(formatDate.format(value)); System.out.println(value + " - " + this.getText()); } return this; } }
voici la méthode de mise à jour du JFrame
Merci d'avance
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 public void update(List<Affaire> listAffaire) { TableModelPerso modeleTable = null; if ((listAffaire == null)||(listAffaire.isEmpty())) { modeleTable = new TableModelPerso(Affaire.class); } else { modeleTable = new TableModelPerso(listAffaire); } this.tableAffaire.setModel(modeleTable); DateCellRenderer dateRenderer= new DateCellRenderer(); this.tableAffaire.setDefaultRenderer(Date.class, dateRenderer); this.scrllAffaires.revalidate(); this.repaint(); }
Partager