Отключить перерисовку после изменения графика в Jung


У меня есть график в Юнге, показанный с помощью JFrame.
После того, как я удаляю вершину из графа, показанный граф автоматически перерисовывается и представляется без удаленной вершины.

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

Спасибо

2 ответа

Простой способ сделать это - расширить ваш граф на некоторый класс и добавить toRemove() метод, где вы можете указать свою вершину для удаления в boolean array, И второй способ deleteNow() который будет использовать ваш логический массив и удалять ваши вершины - это будет похоже repaint() сейчас. Второй способ - добавить логическое значение в вашу вершину вместо массива в расширенном классе. Я не могу найти другой путь. Извините, если это не поможет.

Вы действительно не предоставили достаточно информации, чтобы иметь возможность дать вам точный совет, но вот некоторые общие замечания.

Ответ на ваш вопрос будет зависеть отчасти от того, как вы удаляете вершину: интерактивно или программно.

Если это программно, то вам нужно посмотреть на код, который вызывает VisualizationViewer.repaint(), Прошло много времени с тех пор, как я посмотрел на эту часть кода, но суть в том, что что-то слушает изменения в графовой модели и запускает перерисовки (потому что это то, чего обычно хотят пользователи).

Если это интерактивно, то, вероятно, он находится в том же потоке, что и ваша визуализация, и вы должны иметь достаточный контроль над тем, когда repaint() вызывается (см. вызовы в примере кода для VV.repaint()).

Другие вопросы по тегам