Как сделать редактируемый столбец, строку или ячейку в GlazedLists/JTable в Java?

Может ли кто-нибудь добавить строку кода, чтобы показать, как сделать ячейку GlazdJTable редактируемой?

JTable table = new Jtable();
    TableFormat tableFormat = GlazedLists.tableFormat(properties, headers);
    model = new EventTableModel<Artikel>(filterList, tableFormat);
    selectionModel = new EventSelectionModel<Artikel>(filterList);

    table.setSelectionModel(selectionModel);
    table.setModel(model);

// как настроить редактирование ячейки таблицы?

Примечание: я знаю, что TableFormat должен реализовывать интерфейс WritableTableFormat. но я не знаю, должен ли я создать собственный формат таблицы или возможно установить ячейку Jtable редактируемой точно так же, как JTable.

2 ответа

Решение

Рекомендуемый способ - использовать WritableTableFormat. EventTableModel проверяет, является ли формат таблицы WritableTableFormat, и если это так, делегирует вопрос isEditable() этому (как описано в документации EventTableModel). В противном случае EventTableModel предполагает, что таблица не редактируется.

В данный момент вы используете вспомогательный метод GlazedLists.tableFormat(), а не создаете экземпляр своего собственного TableFormat. Это нормально, есть метод именно для этого случая, где вы указываете, можно ли редактировать каждый столбец, передавая массив логических значений. См. Документацию GlazedLists.tableFormat(String[] propertyNames, String[] columnLabels, логическое [] редактируемое)).

Override TableModel's методpublic boolean isCellEditable(int rowIndex, int columnIndex) вернуть true для редактируемых и false для остальных ячеек.

Другие вопросы по тегам