在我的swing应用程序中,当我从主要组件中移除jogl GLCanvas以在同一位置添加jPanel时,会出现一些显示故障:在旧组件被删除之前和添加新组件之前,剩下的就是剩余的之前在GLCanvas顶部显示的所有弹出菜单的图像在主要组件的背景上可见.
我怎么能避免这个?
从可见的GUI添加/删除组件时,代码应如下所示:
panel.remove(...);
panel.add(...);
panel.revalidate();
panel.repaint();
Run Code Online (Sandbox Code Playgroud)
此外,代码应在Event Dispatch Thread上执行.如果代码是从侦听器中执行的,那么它就在EDT上.如果代码在侦听器之外执行,那么您可能需要使用SwingWorker或SwingUtilities.invokeLater().
| 归档时间: |
|
| 查看次数: |
321 次 |
| 最近记录: |