【发布时间】:2013-02-12 18:08:48
【问题描述】:
我已经尝试过这方面的教程,但我仍然不太明白。基本上我的问题是哪种方法更好,为什么?我应该使用paint 还是paintComponent?
请尽量让答案简单,谢谢。
【问题讨论】:
标签: java swing paint paintcomponent
我已经尝试过这方面的教程,但我仍然不太明白。基本上我的问题是哪种方法更好,为什么?我应该使用paint 还是paintComponent?
请尽量让答案简单,谢谢。
【问题讨论】:
标签: java swing 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 一起使用。
退房
【讨论】: