为什么以下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;
    }
};

最佳答案

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


专门将渲染器添加到TableColumn
重写getColumnClass(...)方法以返回LocalDateTime.class,以便将呈现器用于包含LocalDateTime对象的任何列。


阅读有关Using Custom Renderers的Swing教程中的部分,以获取更多信息。

08-25 07:59
查看更多