java 中,paint() 与paintComponent(),有什么不同?
答案:2 悬赏:50 手机版
解决时间 2021-04-09 23:50
- 提问者网友:未信
- 2021-04-09 09:33
java 中,paint() 与paintComponent(),有什么不同?
最佳答案
- 五星知识达人网友:独钓一江月
- 2021-04-09 10:13
Component.paint:绘制此组件。
应该绘制组件的内容时调用此方法;例如首次显示组件或者组件已损坏并需要修复时。Graphics 参数中的矩形框设置为需要绘制的区域。重写此方法的 Component 子类不需要调用 super.paint(g)。
出于性能的考虑,首次显示宽度或高度为 0 的 Component 时认为它不需要进行绘制,并且也不需要修复。
Container.paint:绘制容器。该方法将 paint 转发给任意一个此容器子组件的轻量级组件。如果重新实现此方法,那么应该调用 super.paint(g) 方法,从而可以正确地呈现轻量级组件。如果通过 g 中的当前剪切设置完全剪切某个子组件,则不会将 paint() 转发给这个子组件。
Container.paintComponents:绘制此容器中的每个组件。
应该绘制组件的内容时调用此方法;例如首次显示组件或者组件已损坏并需要修复时。Graphics 参数中的矩形框设置为需要绘制的区域。重写此方法的 Component 子类不需要调用 super.paint(g)。
出于性能的考虑,首次显示宽度或高度为 0 的 Component 时认为它不需要进行绘制,并且也不需要修复。
Container.paint:绘制容器。该方法将 paint 转发给任意一个此容器子组件的轻量级组件。如果重新实现此方法,那么应该调用 super.paint(g) 方法,从而可以正确地呈现轻量级组件。如果通过 g 中的当前剪切设置完全剪切某个子组件,则不会将 paint() 转发给这个子组件。
Container.paintComponents:绘制此容器中的每个组件。
全部回答
- 1楼网友:酒醒三更
- 2021-04-09 11:14
component.paint:绘制此组件。
应该绘制组件的内容时调用此方法;例如首次显示组件或者组件已损坏并需要修复时。graphics 参数中的矩形框设置为需要绘制的区域。重写此方法的 component 子类不需要调用 super.paint(g)。
出于性能的考虑,首次显示宽度或高度为 0 的 component 时认为它不需要进行绘制,并且也不需要修复。
container.paint:绘制容器。该方法将 paint 转发给任意一个此容器子组件的轻量级组件。如果重新实现此方法,那么应该调用 super.paint(g) 方法,从而可以正确地呈现轻量级组件。如果通过 g 中的当前剪切设置完全剪切某个子组件,则不会将 paint() 转发给这个子组件。
container.paintcomponents:绘制此容器中的每个组件。
根据java的api文档说,paint是container提供的方法,只要容器需要重画的时候就会调用,而paintcomponent则是jcomponent所提供的方法,它是paint委托的一种重画组件的方法。我的想法是paint只会负责重画容器类的界面例如:frame dialog window之类的,而在这些容器之上的组件则由paint委托paintcomponent负责重画。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯