Методы стрельбы TableModel дорогие, если не видны
В java Swing TableModel мы можем запустить изменение, добавление, удаление таблицы и т. д. Мне интересно, являются ли эти вызовы метода дорогостоящими, если компонент НЕ виден?
Например, другое окно покрывает это. Или его в неактивной вкладке.
2 ответа
Чтобы минимизировать влияние запуска большого количества событий обновления, JTable
Renderering использует шаблон flyweight для визуализации только видимых ячеек. Подход изложен здесь. Этот связанный пример хорошо масштабируется на тысячи строк, но вы должны профилировать, чтобы проверить желаемую производительность.
Я заметил отставание в приложении Swing часто при просмотре со статическим текстом, в то время как в скрытом компоненте вкладок имеются серьезные обновления таблиц.
Как показано здесь, используйте SwingWorker
управлять неопределенной задержкой.
Я думаю, это зависит от самого приложения, как реагировать на эти события.
Предположим, вам нужно выполнить какие-то фоновые задачи, основанные на этих событиях, это все равно будет полезно.