J'ai une table:Java Swing: Comment ajouter un CellRenderer pour afficher une date?
public class AppointmentTableModel extends AbstractTableModel {
private int columns;
private int rows;
ArrayList<Appointment> appointments;...
Donc, chaque ligne de la table contient un rendez-vous.
public class Appointment {
private Date date;
private Sample sample;
private String comment;
private ArrayList<Action> history;
public Appointment(Date date, Sample sample, String comment) {
this.date = date;
this.sample = sample;
this.comment = comment;
this.history = new ArrayList<Action>();
}
public Object getByColumn(int columnIndex) {
switch (columnIndex) {
case 0: return date;//Date: dd:mm:yyyy
case 1: return date;//Time mm:hh
case 2: return sample;//sample.getID() int (sampleID)
case 3: return sample;//sample.getNumber string (telephone number)
case 4: return sample;//sample.getName string (name of the person)
case 5: return history;//newst element in history as a string
case 6: return comment;//comment as string
}
return null;
J'ai ajouté dans les commentaires ce que cela va signifier. Comment créer CellRenderers pour l'afficher comme ceci.
table.getColumnModel().getColumn(1).setCellRenderer(new DateRenderer());
Je souhaite également ajouter la ligne entière à peindre en rouge lorsque la date est postérieure à la date actuelle. Et puis une autre colonne qui contient un JButton pour ouvrir un autre écran avec le rendez-vous correspondant en tant que paramètre.
J'ai fait ce que vous avez dit pour le rendu de format. Mais maintenant, ma cellule contient la date actuelle et non la date des données. – HansDampf
Ensuite, vous l'avez fait mal. Un moteur de rendu ne peut afficher que les données de TableModel. – camickr