Итак, я думаю, что название - это все, что мне нужно задать здесь.Я добавляю пустую строку в JTable (реализуя AbstractTableModel). Как обновить модель в режиме реального времени?
Мой AbstractTableModel
отлично работает, когда я хочу, чтобы добавить пустую строку, я использую следующий код, чтобы сделать это:
public void addRow() {
Object[][] oldData = data;
data = new Object[oldData.length + 1][3];
// Copy old data to new data
for (int x = 0; x < oldData.length; x++) {
data[x] = oldData[x];
}
// Append new row
data[oldData.length] = new Object[] {"", "", false};
fireTableRowsInserted(data.length - 2, data.length - 1);
}
Теперь, так как я показываю пустую строку, я хочу, чтобы пользователь отредактируйте его, и я предполагаю, что пользователь будет. Теперь, как я могу убедиться, что данные сохраняются в моем массиве, когда пользователь вносит изменения? Или, если это невозможно, какая лучшая альтернатива?
Ok, так что я, вероятно, следует объяснить, что я хочу сделать:
Я загрузки содержимого из файла и отображения в виде таблицы. Теперь пользователь может добавить новые строки в таблицу при нажатии кнопки Add Row
. Это добавит 1 пустую строку за клик. (На этом изображении выше пример, когда кнопка дважды нажата.
Теперь я хочу, чтобы пользователь мог редактировать ячейки, а затем, возможно, удалять некоторые строки (возможно), но при нажатии кнопки Save Database
обновленные данные в таблице хранит
Некоторые вопросы, чтобы уточнить, что вы хотите сделать: вы хотите сохранить * только * те строки, которые были изменены/добавлены или все таблицы? что ты уже испробовал? У вас, похоже, довольно хорошее понимание того, что вы делали до сих пор, но мне непонятно, в какой части вы точно застряли: 3 – asermax
Просто используйте 'DefaultTableModel'. Вы можете использовать метод addRow (...) 'для добавления пустой строки. У DefaultTableModel также есть метод 'removeRow (...)'. – camickr
@asermax Я хочу сохранить полную обновленную таблицу, означающую все в таблице после добавления/удаления. –