繁体   English   中英

如何在JTable中设置特定的列设置?

[英]How to set specific column settings in JTable?

如何让我的JTable显示每列的特定内容?

我可以将一个Object用于多个列吗? 我想要一个显示日期(dd.mm.yyyy)的列和另一个显示时间(hh:mm)的列,但是现在它只显示了Date对象的字符串表示形式。

public class AppointmentTableModel extends AbstractTableModel {
    ...
    @Override
    public Object getValueAt(int rowIndex, int columnIndex) {
        return appointments.get(rowIndex).getByColumn(columnIndex);
    }
}

public class Appointment {
    ...
    public Object getByColumn(int columnIndex) {
        switch (columnIndex) {
            case 0: return date;
            case 1: return date;
            case 2: return sample;
            case 3: return sample;
            case 4: return history;
            case 5: return comment;
        }
        return null;
    }
}

您可以为这两列设置特定的渲染器,一个将采用Date对象并将其格式化为日期字符串,另一个将采用Date对象并将其格式化为时间字符串。

有关日期渲染的示例,请参阅本教程

您唯一需要改变的是getByColumn

例如,您只需对case 0case 1应用两种不同的格式。


您可以使用SimpleDateFormat

SimpleDateFormat dateFormat = new SimpleDateFormat("MM/dd/yyyy");
SimpleDateFormat timeFormat = new SimpleDateFormat("HH:mm");
// ...
case 0: return dateFormat.format(date);
case 1: return timeFormat.format(date);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM