我已经尝试过这方面的教程,但我仍然不太明白。基本上我的问题是哪种方法更好,为什么?我应该使用paint
orpaintComponent
吗?
请尽量保持答案简单,谢谢。
我已经尝试过这方面的教程,但我仍然不太明白。基本上我的问题是哪种方法更好,为什么?我应该使用paint
orpaintComponent
吗?
请尽量保持答案简单,谢谢。
paint()
从方法的文档中引用
该方法实际上将绘画工作委托给了三个受保护的方法:paintComponent、paintBorder 和paintChildren。... 只想专门化 UI(外观和感觉)委托的绘制方法的子类应该重写paintComponent。
看起来该paint()
方法实际上绘制了组件,包括边框和子项。如果您只想自定义组件的外观,不包括边框和子项,则使用paintComponent()
.
http://docs.oracle.com/javase/7/docs/api/javax/swing/JComponent.html#paint(java.awt.Graphics)
一般来说,在 Swing 中绘制时,建议覆盖paintComponent
.
有很多原因,其中一个是paintComponent
在底层绘制,这意味着您不会意外擦除在绘制过程中渲染的任何组件 - 这种情况经常发生在在这里发帖的人身上。
有很多次你可能需要覆盖paint
,但我总是鼓励你先尝试让它工作paintComponent
。
查看