
首先,感谢提问,其次也请尊重别人的时间和劳动成果。如果解决了你的问题,请不吝给分。谢谢。
在你的makepic2()中加入jp1.validate()就可以了。如下所示:
private void makepic2(){jp1.removeAll()
jp1.repaint()
double t =Math.floor(Math.random()*9 + 1)
int k= (int) t
coranswer= String.valueOf(k)
for(int i = 0i<ki++)
{ int j = i + 1
animal[i]=new JLabel(new ImageIcon(getClass().getResource("animal"+j+".png")))
jp1.add(animal[i])
}
jp1.validate()
}
不能load的原因就是JPanel是不断的再变化的,而JPanel从Container继承的方法validate可以解决这个问题
validate
public void validate()
使用 validate 方法会使容器再次布置其子组件。已经显示容器后,在修改此容器的子组件的时候(在容器中添加或移除组件,或者更改与布局相关的信息),应该调用上述方法。
如果此 Container 无效,则此方法将调用 validateTree 方法,并将此 Container 标记为有效。否则不执行任何动作。
覆盖:
类 Component 中的 validate
if rv is not None and rsv is not None:# extract version/subversion
self._nmap_version_number = int(line[rv.start():rv.end()])
self._nmap_subversion_number = int(line[rsv.start()+1:rsv.end()])
break
}
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)