单元格渲染器不格式化时间戳

时间:2014-03-13 12:03:30

标签: java swing jtable jodatime tablecellrenderer

为什么以下CellRenderer不格式化时间戳?而不是HH:mm我得到了一些东西,例如07:00.000.00

DefaultTableCellRenderer cellRenderer = new DefaultTableCellRenderer() 
{
    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 instanceof LocalDateTime )
        {
            DateTimeFormatter formatter = DateTimeFormat.forPattern("HH:mm");
            String strTime = formatter.print((LocalDateTime)value);
            this.setText(strTime);
        }

        return this;
    }
};

1 个答案:

答案 0 :(得分:2)

如何将渲染器添加到表中?你需要:

  1. 专门将渲染器添加到TableColumn
  2. 重写getColumnClass(...)方法以返回LocalDateTime.class,以便您的渲染器将用于包含LocalDateTime对象的任何列。
  3. 阅读Using Custom Renderers上的Swing教程中的部分以获取更多信息。