"AWT-EventQueue-1" java.lang.ArrayIndexOutOfBoundsException: No such child
详细异常如下:
?
?
?
导致该异常发生的大致原因是:
?
Java UI是单线程的,如果在UI操作上使用了多线程,则会导致一些内部属性不同步情况,比如:主线程上正要进行重绘操作,已经获取到了父容器总共有3个子组件;此时,另外一个线程正好从父容器上删除了一个子组件;这就导致了子组件数不同步,当主线程要获取第3个子组件时,就会抛异常了,因为此时已经没有第3个子组件了。
?
?
解决办法:
?
将非主线程对UI进行的操作放入到以下run方法中
?
SwingUtilities.invokeLater(new Runnable() {public void run() {}});?