Я пытаюсь динамически добавлять строки в таблицу с помощью AbstractTableModel. Строки добавляются в цикл. Когда вторая строка добавляется, значения первой строки отображаются как нулевые в таблице. Программа спроектирована таким образом, что значения строк обновляются, но только для просмотра пользователем, как я могу сохранить значения в таблице, так как она не обновляется до нулевых значений.Java AbstractTableModel Динамически заполняемые строки
Почему таблица всегда обновляет рендеринг таблицы из первой строки? Есть ли способ сделать только следующую строку без перепечатки того, что уже было напечатано в первой строке.
Вот некоторые части моего кода:
public class RunConfig extends AbstractTableModel {
private final LinkedList<Section> daten = new LinkedList<Section>();
private String[] header = {"Links","% N", "% M", "% H", "% S"};
public RunConfig() {
}
public void addElement(Section addValue)
{
daten.add(addValue);
fireTableRowsInserted(daten.size()-1, daten.size()-1);
}
public int getColumnCount() {
return header.length;
}
public String getColumnName(int col) {
return header[col];
}
public Object getValueAt(int row, int col) {
return ((Section)daten.get(row));
}
public int getRowCount() {
return daten.size();
}
public boolean isCellEditable(int row, int col){
return false;
}
}
Как выглядит «Секция»? Кроме того, 'getValueAt' должно возвращать значение для указанной ячейки (строки/столбца), а не объекта, который представляет строку ... – MadProgrammer
Рассмотрите возможность предоставления [runnable example] (https://stackoverflow.com/help/mcve), который демонстрирует вашу проблему. Это не дамп кода, а пример того, что вы делаете, что подчеркивает проблему, с которой вы сталкиваетесь. Это приведет к меньшему путанице и лучшим ответам – MadProgrammer
"* Почему таблица всегда обновляет рендеринг таблицы из первой строки? Есть ли способ отобразить только следующую строку без перепечатки того, что уже было напечатано в первой строке." * - ' JTable' сильно оптимизирован для уменьшения накладных расходов при рисовании большого количества строк. Невозможно было бы рисовать видимую область, в которой произошли обновления, поскольку это то, как работает живопись. То, что он пытается сделать, - это не области рисования таблицы, которые не видны. – MadProgrammer