Итак, я пытался использовать пример из Tutorial и изменить его так, чтобы он соответствовал моей программе.
Метод getColumnValue возвращает объект, который содержит информацию, которая должна отображаться. Это путь или лучше вернуть фактическую строку для отображения. Наверное, не потому, что таким образом я бы смешал презентацию с данными, которых я пытался избежать.
public class IssueTableFormat implements TableFormat<Appointment> {
public int getColumnCount() {
return 6;
}
public String getColumnName(int column) {
if(column == 0) return "Datum";
else if(column == 1) return "Uhrzeit";
else if(column == 2) return "Nummer";
else if(column == 3) return "Name";
else if(column == 4) return "letzte Aktion";
else if(column == 5) return "Kommentar";
throw new IllegalStateException();
}
public Object getColumnValue(Appointment issue, int column) {
if(column == 0) return issue.getDate();
else if(column == 1) return issue.getDate();
else if(column == 2) return issue.getSample();
else if(column == 3) return issue.getSample();
else if(column == 4) return issue.getHistory();
else if(column == 5) return issue.getComment();
throw new IllegalStateException();
}
}
Столбцы 0 и 1 содержат объект GregorianCalendar, но я хочу, чтобы в столбце 0 отображалась дата, а в 1 - время.
Так что я знаю, что использование cellRenderers может помочь здесь.
Это то, что я пытался.
public class DateRenderer extends DefaultTableCellRenderer {
public DateRenderer() { super(); }
public void setValue(Object value) {
GregorianCalendar g =(GregorianCalendar) value;
value=g.get(GregorianCalendar.HOUR);
}
}
Но клетка ничего не показывает, что здесь не так?