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

2022-09-04 00:38:43

我已经尝试了这方面的教程,但我仍然不太理解它。基本上我的问题是哪种方法更好,为什么?我应该使用 或 ?paintpaintComponent

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


答案 1

引用方法文档paint()

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

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

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


答案 2

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

原因有很多,一个是绘制在底层,这意味着您不会意外地擦除在绘画过程中渲染的任何组件 - 这种情况经常发生在在这里发帖的人身上。paintComponent

有一个,非常,很少的次数,你可能需要覆盖,但我总是鼓励你尝试让它首先工作。paintpaintComponent

退房


推荐