У меня есть jTable и jButton. При нажатии кнопки actionPerformed метод вызывает другой метод, который содержит цикл while и каждый раз добавляет строку к модели таблицы (DefaultTableModel), хотя цикл. Цикл while может работать в течение нескольких минут, поэтому я хочу, чтобы он отображал в графическом интерфейсе строки, добавляемые в таблицу каждый раз, один за другим. Однако теперь он добавляет все строки в таблицу вместе после завершения цикла, поэтому вместо того, чтобы увеличивать количество строк один за другим в течение нескольких минут, это идет от нескольких минут, показывая таблицу с 0 строками, чтобы затем мгновенно имея тысячи. Я попытался вызвать updateUI, перерисовать и т. Д. В таблице, а также вызвать fireTabledDataChanged и т. Д. На модели, но ничто из этого не имело никакого значения. Я также пытался использовать таймер Swing, но безрезультатно. Я был бы благодарен за любую помощь или руководство, спасибо.Добавить строку в jTable каждый проход через цикл?
ответ
Прочитайте раздел из свинг учебник по Concurrency, который более подробно объясняет, как работает EDT. В дополнение к созданию собственного потока и использованию SwingUtilties.invokeLater() вы также можете использовать более новый подход к использованию SwingWorker. В учебнике приведен пример.
Я пытался дозвониться updateUI,
Никогда не делать что-то подобное. Даже если он исправляет вашу проблему, это неправильное решение. Вы не обновляете пользовательский интерфейс, вы обновляете компонент.
Если вы используете DefaultTableModel
, вызов addRow
на вашей модели во время каждой итерации должен обновить модель, которая затем должна обновить JTable
. В таблице будет указано, что она будет перекрашена, и этот запрос будет отправлен на EDT. К сожалению, ваш длительный процесс поддерживает другие запросы от обработки EDT. Самое лучшее для вас сделать, это ваша кнопка запуска процесса в рабочем потоке, и этот поток может затем его addRow
вызовы выполняются в Runnable
, что потеряется на EDT через SwingUtilities.invokeLater
- 1. Печать массива через каждый проход (Bubble Sort)
- 2. Как добавить строку в JTable?
- 3. Цикл через строку
- 4. цикл через массив, выводят каждый элемент в новую строку
- 5. Цикл через каждый ряд диапазона в Excel
- 6. jQuery - цикл через каждый элемент
- 7. Цикл макроса через каждый лист
- 8. проход EditText в строку
- 9. Java JTable AttributiveCellTableModel добавить строку
- 10. TWIG - цикл через строку
- 11. javascript jszip добавить файл в каждый цикл
- 12. Добавить каждый элемент в строку
- 13. Как добавить границу в строку в Jtable?
- 14. Objective C, NSDictionary цикл через каждый объект
- 15. цикл через каждый пиксель в java-андроиде
- 16. цикл через каждый элемент в списке
- 17. Как добавить строку в цикл
- 18. цикл через каждый файл и добавление заголовка
- 19. Удаление нескольких переменных каждый проход цикла
- 20. Как добавить пустую строку в JTable?
- 21. Как добавить строку нижнего колонтитула в JTable
- 22. Добавить строку в JTable с AbstractTableModel
- 23. Как добавить кнопку в строку JTable?
- 24. Как добавить еще одну строку в jTable
- 25. Как добавить строку в список массива строк через цикл
- 26. Выполнение 2 функций через цикл за один проход
- 27. jQuery бесконечный цикл через каждый div
- 28. проход Список_массивов через намерение
- 29. Добавить элемент списка через цикл в jQuery
- 30. Выделите строку в JTable
Мой ответ должен был быть почти таким же, когда я увидел, что вы отправили свои сообщения :) - так что я просто дал вам +1 –