paint()和paintcomponent()之间的区别?

时间:2013-02-27 03:14:44

标签: java swing paint paintcomponent

我已经尝试过这方面的教程,但我仍然不太明白。基本上我的问题是哪种方法更好,为什么?我应该使用paint还是paintComponent

请尽量保持答案简单,谢谢。

2 个答案:

答案 0 :(得分:14)

引用paint()方法

的文档
  

此方法实际上将绘制工作委托给三个受保护的方法:paintComponent,paintBorder和paintChildren。      ...   一个只想专门化UI(外观)委托的paint方法的子类应该只覆盖paintComponent。

看起来paint()方法实际上绘制了组件,包括边框和子项。如果您只想自定义除边框和子项之外的组件外观,请使用paintComponent()

http://docs.oracle.com/javase/7/docs/api/javax/swing/JComponent.html#paint(java.awt.Graphics)

答案 1 :(得分:9)

一般来说,在Swing中绘画时,建议覆盖paintComponent

有很多原因,一个是paintComponent在底层绘制,这意味着你不会意外擦除在绘制过程中渲染的任何组件 - 这对于发布在这里。

您可能需要覆盖paint,但我总是鼓励您先尝试使用paintComponent

结帐