1 /*
2 J-Bird net/sourceforge/jbird/table/DateRenderer.java
3
4 Copyright 2001, 2002, 2003 Dick Repasky
5 */
6 package net.sourceforge.jbird.table;
7
8 import java.text.DateFormat;
9 import java.util.Date;
10
11 import java.awt.Component;
12
13 import javax.swing.JLabel;
14 import javax.swing.JTable;
15 import javax.swing.SwingConstants;
16
17 import javax.swing.table.DefaultTableCellRenderer;
18
19 /**
20 * A class for presenting dates in a JTable. Null values are rendered
21 * blank.
22 * <p>
23 * If the argumentless constructor is used, a default DateFormat object is
24 * used.
25 * @author Dick Repasky
26 * @since J-Bird 0.1.3
27 */
28
29 public class DateRenderer extends DefaultTableCellRenderer {
30
31 protected DateFormat formatter;
32
33 public DateRenderer (DateFormat formatter) {
34 super();
35 this.formatter = formatter;
36 }
37
38 /** A default DateFormat object is loaded. */
39 public DateRenderer() {
40 formatter = DateFormat.getDateInstance();
41 }
42
43 public Component getTableCellRendererComponent(
44 JTable table,
45 Object value,
46 boolean isselected,
47 boolean hasfocus,
48 int row,
49 int col) {
50 String formatted;
51 if (value != null && (value instanceof Date)) {
52 formatted = formatter.format((Date)value);
53 } else {
54 formatted = "";
55 }
56 JLabel answer = (JLabel)super.getTableCellRendererComponent(table,
57 formatted,
58 isselected,
59 hasfocus,
60 row,
61 col);
62 answer.setHorizontalAlignment(SwingConstants.CENTER);
63 return answer;
64 }
65
66 }
67