repaint()方法是重绘,而validate()是重载,一般来说,从一个容器中删除某个组件需要调用repaint(),而把某个组件添加到某一容器中,则需调用validate()。举个例子:
有两个JPanel分别为p1和p2,要把p2添加到p1里面,则需这样写:
p1.add(p2);
p1.validate();
要从p1中移除p2,则需这样写:
p1.remove(p2);
p1.repaint();
简单来说,添加用validate(),删除用repaint();
本文介绍了Swing中组件更新的方法,区分了validate()与repaint()的使用场景。添加组件时使用validate(),删除组件时则需调用repaint()。通过具体示例帮助理解两者的不同。
repaint()方法是重绘,而validate()是重载,一般来说,从一个容器中删除某个组件需要调用repaint(),而把某个组件添加到某一容器中,则需调用validate()。举个例子:
有两个JPanel分别为p1和p2,要把p2添加到p1里面,则需这样写:
p1.add(p2);
p1.validate();
要从p1中移除p2,则需这样写:
p1.remove(p2);
p1.repaint();
简单来说,添加用validate(),删除用repaint();