Java swing: Remanence при удалении тяжелого компонента jogl для добавления легкого компонента в одном месте - PullRequest
4 голосов
/ 23 февраля 2011

В моем приложении Swing, когда я удаляю jogl GLCanvas из моего основного компонента, чтобы добавить jPanel в том же месте, появляются некоторые глюки дисплея : В то время, когда старый компонент был удален и до того, как был добавлен новый, оставшиеся изображения всех всплывающих меню, которые отображались ранее в верхней части GLCanvas , видны на фоне основного компонент.

Как мне этого избежать?

1 Ответ

5 голосов
/ 23 февраля 2011

При добавлении / удалении компонентов из видимого графического интерфейса код должен выглядеть следующим образом:

panel.remove(...);
panel.add(...);
panel.revalidate();
panel.repaint();

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

...