JAVA中Paint与paintComponent方法的区别是什么

RT?... RT? 展开
 我来答
匿名用户
推荐于2018-03-07
展开全部
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负责重画。
微测检测5.10
2023-05-10 广告
您好!建议咨 深圳市微测检测有限公司,已建立起十余个专业实验室,企业通过微测检测就可以获得一站式的测试与认 证解决方案;(EMC、RF、MFi、BQB、QI、USB、安全、锂电池、快充、汽车电子EMC、汽车手机互 联、语音通话质量),认证遇... 点击进入详情页
本回答由微测检测5.10提供
匿名用户
2013-08-10
展开全部
在JAVA中Paint与paintComponent方法的区别:
paint是绘制容器,比如JFRAME就绘JFrame不重绘JFrame上的组件比如JButton;
paintComponent是绘制容器中的组件,比如用这个就不能绘制JFrame中的内容,只能绘Add方法加在JFrame上的组件。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-08-10
展开全部
看你使用的是awt包中的组件,还是swing包中的组件。
awt中使用paint()
swing中使用paintComponent()
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
推荐于2016-04-23
展开全部
根据我的经验,问题还是在paint方法里,你可以这样试试:
不要通过重写paint方法来画图,这会造成很多难以估计的影响。比较好的办法是重写paintComponent方法,如下:
public void paintComponent(Graphics g)
{
super.paintComponent(g);
//然后再在这里写你的绘图代码
}
因为你只是需要绘图,用图片覆盖JPanel即可,不需要改写paint方法。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式