Префуз замораживает JFrame
Мы вызываем веб-сервисы для сбора информации для графа с около 1500 узлами. Мы отображаем график в Prefuse, в то время как он постоянно добавляет узлы и ребра. В большинстве случаев кажется, что это прекрасно работает, но время от времени все приложение зависает, и единственный способ восстановиться - это убить приложение и начать все сначала. Никаких исключений не распечатывается, когда это происходит. В других случаях я довольно часто вижу "IllegalArgumentException: недопустимый индекс строки: -1", но это, похоже, не связано с зависанием приложения.
Я видел похожие вопросы о зависании в апплетах, но наше приложение работает в JFrame, а не в апплете. На тот случай, если это была наша проблема, мы попытались вызвать ActivityManager.stopThread() (не удалось найти метод kill) в разных местах нашего кода. Это, кажется, не имеет большой разницы.
Есть ли потокобезопасный способ префузии для отображения графика во время редактирования графика?
1 ответ
Есть ли потокобезопасный способ отображения графика при редактировании графика?
Все обновления графического интерфейса должны быть сделаны на EDT. Используйте SwingWorker.
См. Параллелизм в Swing для получения дополнительной информации.