【发布时间】:2011-02-23 16:02:52
【问题描述】:
在我的摇摆应用程序中,当我从主要组件中删除 jogl GLCanvas 以在同一位置添加 jPanel 时,有一些显示故障: 在移除旧组件和添加新组件之前,所有之前显示在 GLCanvas 顶部的弹出菜单的剩余图像在主要成分。
我怎样才能避免这种情况?
【问题讨论】:
在我的摇摆应用程序中,当我从主要组件中删除 jogl GLCanvas 以在同一位置添加 jPanel 时,有一些显示故障: 在移除旧组件和添加新组件之前,所有之前显示在 GLCanvas 顶部的弹出菜单的剩余图像在主要成分。
我怎样才能避免这种情况?
【问题讨论】:
在可见的 GUI 中添加/删除组件时,代码应如下所示:
panel.remove(...);
panel.add(...);
panel.revalidate();
panel.repaint();
另外,代码应该在事件调度线程上执行。如果代码是从侦听器中执行的,那么它就在 EDT 上。如果代码在侦听器之外执行,那么您可能需要使用 SwingWorker 或 SwingUtilities.invokeLater()。
【讨论】: