DateCellRenderer
Dateオブジェクトを表示するレンダラーを実装する。
■ソースコード
DateFormatでDateを文字列に変換し、JLabelを貼り付けるだけ。
package test; import java.awt.Color; import java.awt.Component; import java.text.DateFormat; import java.util.Date; import javax.swing.BorderFactory; import javax.swing.JLabel; import javax.swing.JTable; import javax.swing.border.Border; import javax.swing.table.TableCellRenderer; public class DateCellRenderer extends JLabel implements TableCellRenderer { /** * */ private static final long serialVersionUID = 1L; private Border unselectedBorder = null; private Border selectedBorder = null; private boolean isBordered = true; private DateFormat fort0; private DateFormat fort1; public DateCellRenderer(boolean isBordered) { this.isBordered = isBordered; this.setBackground(Color.WHITE); setOpaque(true); fort0=DateFormat.getDateInstance(); fort1=DateFormat.getDateTimeInstance(); } @Override public Component getTableCellRendererComponent(JTable arg0, Object arg1, boolean arg2, boolean arg3, int arg4, int arg5) { Date date=(Date)arg1; this.setText(fort0.format(date)); setToolTipText(fort1.format(date)); if (isBordered) { if (arg2) { if (selectedBorder == null) { selectedBorder = BorderFactory.createMatteBorder(2,5,2,5, arg0.getSelectionBackground()); } setBorder(selectedBorder); } else { if (unselectedBorder == null) { unselectedBorder = BorderFactory.createMatteBorder(2,5,2,5, arg0.getBackground()); } setBorder(unselectedBorder); } } return this; } }