Вопрос уже был дан ответ, и я прочитал много подобных, но не работает для меня. Поэтому у меня есть модель JTable
с пользовательской таблицей, которая расширяет DefaultTableModel
. Мои данные: Object[][] data
и имена столбцов String[] columnNames
. Итак, когда мои данные изменяются, как мне обновить таблицу? Я использую tableModel.setDataVector(data, columnNames)
, и он работает, но он сбрасывает мой пользовательский рендеринг ящиков по умолчанию. Благодарю.Обновление JTable при изменении данных
ответ
Не меняйте Массивы! Функция DefaultTableModel скопирует данные из массива во внутреннее хранилище, используемое модулем DefaultTableModel.
Вместо этого вам необходимо напрямую изменить TableModel с помощью метода setValueAt(...)
JTable или TableModel. Затем TableModel уведомит таблицу о том, что изменения были сделаны.
Я использую
tableModel.setDataVector(data, columnNames)
и он работает, но он сбрасывает свой пользовательский визуализатор ячейки по умолчанию
Если вам необходимо восстановить всю TableModel по какой-либо причине, то вы можете использовать:
table.setAutoCreateColumnsFromModel(false);
ПОСЛЕ того, как вы создаете таблицу с помощью TableModel в первый раз. Теперь, в следующий раз, когда вы используете метод setDataVector(...)
, таблица TableColumnModel
не будет воссоздана, что означает, что вы не потеряете пользовательские средства визуализации.
Hm. Звучит хорошо. Но какой должна быть «причина» для воссоздания всей таблицы? В моем случае у меня есть таблица с некоторыми статьями и их статистика чисел. Поэтому, когда пользователь вводит новое состояние в следующем столбце, столбец после показывает разницу и денежный доход. Это причина воссоздать всю модель таблицы или я должен придерживаться table.setValue (..)? –
@ ЂрђеЂашић, вы меняете значение одной ячейки, поэтому используете метод setValueAt (...). 'Но что должно быть необходимо« причина »для воссоздания всей модели таблицы?» - когда вы меняете все данные. Возможно, вы запрашиваете базу данных. – camickr
Хорошо, спасибо за объяснение. Теперь я понимаю. С наилучшими пожеланиями! Я соглашусь ответить. –
- 1. Обновление JTable при изменении данных
- 2. Обновление страницы при изменении данных
- 3. '' Обновление данных в JTable
- 4. Обновление контроля привязки данных при изменении данных
- 5. Обновление данных при изменении данных в datagrid
- 6. Обновление JTable при закрытии окна
- 7. Обновление таблицы telerik при изменении данных
- 8. Обновление ng-repeat при изменении данных
- 9. Android - GridView форсирует обновление при изменении данных
- 10. Обновление списка при изменении данных адаптера
- 11. Обновление uicollectionview при изменении основного объекта данных
- 12. Обновление базы данных при изменении Календаря Google
- 13. Обновление списка фрагментов при изменении базы данных
- 14. Обновление данных таблицы при изменении ввода
- 15. Обновление Silverlight DataGrid при изменении базовых данных
- 16. Обновление Datagridview при изменении источника данных
- 17. Обновление базы данных при изменении исходного входного
- 18. Обновление DOM только при изменении данных области $
- 19. Обновление Android ListActivity при изменении данных списка?
- 20. extjs Обновление при изменении данных хранилища
- 21. Обновление FrontEnd при изменении таблицы базы данных
- 22. Обновление jtable
- 23. автообновление столбцов jtable при изменении модели
- 24. Обновление JTable после изменения данных
- 25. Обновление JTable из базы данных
- 26. Обновление JTable при нажатии мыши?
- 27. Обновление JTable при нажатии кнопки
- 28. JTable multiselect теряет выделение при изменении данных таблицы
- 29. Обновить Jtable при изменении в базе данных. Ошибка: ORA-12519
- 30. Обновление представлений при изменении модели
В каких отношениях ваши данные изменяются? Изменилось ли это через таблицу или с помощью других внешних средств? API-интерфейс таблицы способен управлять собой, поэтому изменение значений через таблицу не требует дополнительного ввода от вас. Изменения, сделанные извне, немного сложнее, в зависимости от количества изменений. Вы можете вызвать TableModel # setValueAt для простых изменений или полностью заменить модель JTable для более сложных chmages – MadProgrammer
Мои данные изменяются следующим образом: данные [0] [0] были, например, 5, а теперь это 10. Так как я делаю это изменение таблица также? Или вы думаете, что я не должен отображать данные через tableModel.setDataVector (..) и вместо этого использовать table.setValue (..)? –