Я читал сообщения, похожие на мои, и читал через Java tutorial page, но я просто не могу заставить это работать. Я не уверен, что мне не хватает чего-то фундаментального или нет ...HowTo Удалить строку в JTable с помощью Custom TableModel
У меня есть пользовательская модель таблицы, ниже которой я должен иметь возможность удалять строки из. Таблица инициализируется пустым, а строки добавляются через поле со списком и кнопку добавления. Существует также кнопка удаления, которая должна удалить выбранную строку из таблицы.
class TableModel extends AbstractTableModel
{
private String[] columnNames = {"Enabled", "Value" };
protected Class[] columnClasses = new Class[] { Boolean.class, String.class };
public int getColumnCount() { return columnNames.length; }
public int getRowCount() { return filters.size(); }
public String getColumnName(int col) { return columnNames[col]; }
public Class getColumnClass(int col) { return columnClasses[col]; }
public Object getValueAt(int row, int col) { ... }
public void setValueAt(Object value, int row, int col) { ... }
public void addRow(String value)
{
fireTableRowsInserted(filters.size() - 1, filters.size() - 1);
int row = filters.size() -1 ;
int col = 1;
setValueAt(value, row, col);
}
public void removeRow(int row)
{
fireTableRowsDeleted(selectedRow, selectedRow);
}
}
Я подтвердил, что selectedRow
содержит правильную строку через принты в консоли. Функция fireTableRowsDeleted
просто ничего не делает. Строка все еще существует. Как вы просто удаляете определенную строку?
Спасибо,
где находится объект фильтров? @njozwiak – gumuruh