2017-01-21 2 views
1


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

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

Спасибо

ответ

1

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

0

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

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

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

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

Смежные вопросы