Невозможно обновить таблицу результатов в дочернем JFrame - PullRequest
0 голосов
/ 09 июля 2011

У меня есть основной JFrame, который является интерактивным, т.е. пользователь устанавливает различные параметры.После нажатия кнопки «Выполнить» файл конфигурации создается из пользовательских настроек и передается следующей части программы.Некоторые вычисления сделаны, и результаты записаны в файл.Третья часть программы читает файл результатов и обобщает их.

Затем открывается дочерний JFrame, состоящий из JTabbedPane с несколькими JPanels.Каждый из JPanels показывает различные JTables с соответствующей информацией.Дочерний JFrame имеет метод DISPOSE_ON_CLOSE, в противном случае оба JFrames будут уничтожены.

Таким образом, проблема заключается в том, что если пользователь изменяет некоторые параметры, запустите программу еще раз, новый дочерний JFrame на самом деле не новый - он показывает только информацию из первогозапустить.Я пробовал:

invalidate()
revalidate()
repaint()

Ничего не помогает.Я не знаю, где проблема.Я почти уверен, что после изменения параметров новый файл результатов читается, потому что он печатается в консоли.

Может быть, другой важной вещью является то, что таблицы создаются первыми, а дочерний JFrame вызывается последними.

1 Ответ

1 голос
/ 09 июля 2011

Возможно, потому что где-то в вашем коде у вас есть:

table = new JTable(...);

Это не добавляет таблицу в GUI.Вместо создания новой таблицы вы должны обновить данные в существующей таблице, выполнив:

TableModel model = ....
table.setModel( model );

Это приведет к автоматической перерисовке данных.Нет необходимости в invalidate (), revalidate () или repaint ().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...