在我的swing应用程序中,当我从主要组件中删除 jogl GLCanvas 以在同一位置添加 jPanel 时,一些显示故障: 在旧组件被删除之前和添加新组件之前,在 GLCanvas 顶部之前显示的所有弹出菜单的剩余图像在背景上可见。主要组成部分。
我该如何避免这种情况?
答案 0 :(得分:5)
在可见GUI中添加/删除组件时,代码应如下所示:
panel.remove(...);
panel.add(...);
panel.revalidate();
panel.repaint();
此外,代码应在Event Dispatch Thread 上执行。如果代码是从侦听器中执行的,那么它就在EDT上。如果代码在侦听器之外执行,那么您可能需要使用SwingWorker或SwingUtilities.invokeLater()。