首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为JPanels调用repaint()

为JPanels调用repaint()
EN

Stack Overflow用户
提问于 2012-07-19 07:33:16
回答 2查看 537关注 0票数 0

当我重新绘制()面板时,我将我的JLabels放在面板上,我得到了错误,但它仍然有效。我试着将panel.repaint();代码放在一个try语句中,但是没有帮助。还有没有人对JPanels的repaint()有问题?

错误消息(从评论中复制):

代码语言:javascript
复制
Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: No such child: 21 
at java.awt.Container.getComponent(Unknown Source) 
at javax.swing.JComponent.rectangleIsObscured(Unknown Source) 
at javax.swing.JComponent.paint(Unknown Source) 
at javax.swing.JComponent.paintToOffscreen(Unknown Source) 
at javax.swing.RepaintManager$PaintManager.paintDoubleBuffered(Unknown Source) 
at javax.swing.RepaintManager$PaintManager.paint(Unknown Source) )
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-07-19 08:49:30

确保对UI的所有修改都在Event Dispatching Thread中执行,包括在容器中添加和移除组件。

正如里昂所说,使用invokeLater方法将确保在EDT上正确地进行操作。

票数 1
EN

Stack Overflow用户

发布于 2012-07-19 08:05:32

我不是很确定,但我想我以前遇到过同样的问题。我相信使用SwingUtilities.invokeLater当时对我很有帮助。试一试,我不是很确定。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11551903

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档