Java swing:删除重量级jogl组件以在同一位置添加轻量级组件时的剩余

时间:2011-02-23 16:02:52

标签: java swing jogl

在我的swing应用程序中,当我从主要组件中删除 jogl GLCanvas 以在同一位置添加 jPanel 时,一些显示故障: 在旧组件被删除之前和添加新组件之前,在 GLCanvas 顶部之前显示的所有弹出菜单的剩余图像在背景上可见。主要组成部分。

我该如何避免这种情况?

1 个答案:

答案 0 :(得分:5)

在可见GUI中添加/删除组件时,代码应如下所示:

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

此外,代码应在Event Dispatch Thread 上执行。如果代码是从侦听器中执行的,那么它就在EDT上。如果代码在侦听器之外执行,那么您可能需要使用SwingWorker或SwingUtilities.invokeLater()。