paint()和paintcomponent()之间的区别?
我已经尝试了这方面的教程,但我仍然不太明白。 基本上我的问题是哪种方法更好,为什么? 我应该使用paint
或paintComponent
吗?
请尽量保持答案简单,谢谢。
引自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)
一般来说,在Swing中绘制时,建议覆盖paintComponent
。
有很多原因,一个是paintComponent
在底层绘制,这意味着你不会意外擦除在绘制过程中渲染的任何组件 – 这对发布在这里的人来说会发生很多。
有一次,很少次你可能需要覆盖paint
,但我总是鼓励你尝试首先使用paintComponent
。
查看
- 执行自定义绘画
- 在AWT和Swing中绘画 (+1到trashgod)