日期:2014-05-20  浏览次数:20764 次

JPanel中的paintComponent方法是用来做什么的?
在看书的时候常常看到这个方法,但是是不知道它是怎么工作的。请高手帮一下忙帮我解决掉。

------解决方案--------------------
从JComponent继承的方法:

paintComponent
protected void paintComponent(Graphics g)如果 UI 委托为非 null,则调用该 UI 委托的 paint 方法。向该委托传递 Graphics 对象的副本,以保护其余的 paint 代码免遭不可取消的更改(例如 Graphics.translate)。
如果在子类中重写此方法,则不应该对传入到 Graphics 中的内容进行永久更改。例如,不应更改剪裁矩形 或修改转换。如果需要进行这些操作,您会发现根据传入的 Graphics 创建一个新 Graphics 并操作它会更容易一些。另外,如果不调用超类的实现,则必须遵守不透明属性,也就是如果此组件是不透明的,则必须以透明的颜色完全填充背景。如果不遵守不透明属性,则很可能看到可视化的人为内容。

传入的 Graphics 对象可能具有与该对象上已安装的标识转换所不同的转换。在这种情况下,如果多次应用其他转换,则可能得到不可预料的结果。


参数:
g - 要保护的 Graphics 对象
另请参见:
paint(java.awt.Graphics), ComponentUI

------解决方案--------------------
往JPANEL里面画东西的
很多GUI组建好像都有这个方法
你继承后就可以在这个方法里面画
画了之后那个类生成的效果就是你画的效果
画的方法在java.awt.Graphics里面有,看API