Как установить конкретные настройки столбца в JTable? - PullRequest
1 голос
/ 05 мая 2010

Как мне сделать, чтобы мой JTable показывал определенные вещи для каждого столбца?

Могу ли я использовать объект для более чем одного столбца? Я хочу, чтобы в столбце была указана дата (дд.мм.гггг), а в другом - время (чч: мм), но теперь у меня есть только строковое представление объекта 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;
    }
}

Ответы [ 2 ]

3 голосов
/ 05 мая 2010

Вы можете установить конкретные средства визуализации для двух столбцов, один из них возьмет объект Date и отформатирует его как строку даты, другой возьмет объект Date и отформатирует его как строку времени.

См. этот урок для примера по датировке.

1 голос
/ 05 мая 2010

Единственное, что вам нужно изменить, это ваш getByColumn.

Вы просто должны применить два разных формата для case 0 и case 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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...