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


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

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

Спасибо


person Daniel    schedule 21.01.2017    source источник


Ответы (2)


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

person Community    schedule 21.01.2017

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

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

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

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

person Joshua O'Madadhain    schedule 22.01.2017