一个继承了JPanel类的子类实例,并使用setBounds方法设置该实例在窗体中的位置及大小导致paintCompontent方法调用了两次
时间: 2024-03-17 19:45:44 浏览: 42
类的继承实例
如果使用setBounds方法设置组件的位置和大小,会触发容器重新布局,从而导致组件的paint方法被调用。因此,在使用setBounds方法设置组件位置和大小时,确实会出现paintComponent方法被调用多次的情况。
如果你只想在组件第一次显示时调用paintComponent方法,可以在构造函数中添加如下代码:
```
setPreferredSize(new Dimension(width, height));
revalidate();
repaint();
```
其中,width和height分别是组件的宽度和高度。这样,组件在第一次显示时就会被正确绘制。如果需要更新组件内容,可以调用repaint方法触发重绘。
阅读全文