Swing高手关注!使用SwingUtilities.invokeLater

lyx262 2010-09-14 04:09:16
swing为了安全使用SwingUtilities.invokeLater 如下方法,这样在main方法中即主线程里所有的UI操作都放到了swing线程里,包括后边程序里开启的表格,按钮事件都是没问题的。
public static void main( String[] args ){
SwingUtilities.invokeLater( new Runnable()
{
public void run()
{
MainFrame w = new MainFrame();
w.setVisible( true );
}
} );

}
问题:我的程序里有个功能是“入库”,它又起了一个线程,而且线程里又用到了UI的东西,这时这些UI没有放到swing线程里,然后就会报一个错误“Component creation must be done on Event Dispatch Thread”!
我把里边的某个UI操作再放到swin线程里,像上边那样,就好了,关键是里边对UI的操作太多了,放的话得一个个全放。这样不可行,有什么办法呢????
...全文
580 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
lyx262 2010-09-14
  • 打赏
  • 举报
回复
我是在用substance这个皮肤,它要求必须放到swing线程里,所以才那么写,但是我的多线程里的UI操作不知道该怎么写。。。。。
lyx262 2010-09-14
  • 打赏
  • 举报
回复
顶一下,大家帮忙看看。
gujinf2008 2010-09-14
  • 打赏
  • 举报
回复
关注中,新手,还没研究到线程,学习学习......
lyx262 2010-09-14
  • 打赏
  • 举报
回复
不是吧,本来我没用SwingUtilities.invokeLater,由于用到了substance外观皮肤,它好像必须的加这,但是我的入库线程里真的不好加,里边干的事太多,UI的操作很频繁,有什么办法吗???
youjianbo_han_87 2010-09-14
  • 打赏
  • 举报
回复
你要用这个方法,就得这样干。。。

62,616

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧