Я просто не могу получить свой JTable
, чтобы обновить новую модель таблицы, которую я создаю с помощью метода.Невозможно получить JTable для обновления/перерисовки DefaultTableModel в том же экземпляре запуска GUI
Я доказал метод tablemodel.getDataVector()
, что моя таблица модели обновлена правильно.
Однако я не могу получить свой JTable
, чтобы обновить представление к этой новой вещи.
My JTable
находится на пустой панели макета и находится в пределах JScrollPane
.
Соответствующий код о JTable:
private JTable patientTable = new JTable(tablemodel);
private JScrollPane patientscrollPane = new JScrollPane(patientTable);
patientTable.setModel(tablemodel);
patientTable.setFillsViewportHeight(true);
sorter = new TableRowSorter<DefaultTableModel>(tablemodel);
patientTable.setRowSorter(sorter);
patientcard.add(patientscrollPane);
Соответствующий код о том, что я пытаюсь сделать, чтобы перерисовать таблицу:
tablemodel = controller.createModel(patientlist);
patientTable = new JTable(tablemodel);
patientscrollPane = new JScrollPane(patientTable);
patientTable.setModel(tablemodel);
patientTable.setFillsViewportHeight(true);
patientTable.setPreferredScrollableViewportSize(patientTable.getPreferredSize());
patientTable.validate();
patientscrollPane.validate();
patientTable.repaint();
patientcard.setVisible(true);
registrycard.setVisible(false);
Интересно, что когда я называю patientTable.getTableModel()
, не возвращают DefaultTableModel
Это, как правило, имело место для меня в прошлом, когда была предпринята попытка обновить модель за пределами Диспетчерской темы событий. Рассмотрите возможность предоставления [runnable example] (https://stackoverflow.com/help/mcve), который демонстрирует вашу проблему. Это не дамп кода, а пример того, что вы делаете, что подчеркивает проблему, с которой вы сталкиваетесь. Это приведет к меньшему путанице и лучшим ответам – MadProgrammer
Спасибо. Теперь я добавил то, что, по моему мнению, является запущенным примером, с удаленным количеством строк кода и всего двумя полями для пациента (имя, фамилия) и т. Д. Вы также можете запустить это путем тестирования на любом образце CSV чего-либо с именем и фамилией. –
@MadProgrammer Теперь я обновился, чтобы быть еще проще, посмотрите –