前几天遇到一个在JPanel中移除控件后,用revalidate()方法重绘后,面板刷新有不彻底或延时的问题,通过网页的各种方法后,添加了JPanel的repaint()方法才解决了这个问题。原来revalidate()方法是对布局管理器对应的容器的子组件重新布局并绘制。但是容器自身“不一定”会绘制。容器自身的重绘,轻量级的方法一般调用repaint()。
如:

     Panel1.remove(pieces);//删除panel1中原有的组件
     demo.setBounds(0, 92, 338, 528);
     Panel1.add(demo);//panel1添加新的组件
     Panel1.revalidate();//对panel1面板中的组件重新布局并绘制
     Panel1.repaint();//对panel1本身进行重绘
Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐