永发信息网

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

答案:4  悬赏:10  手机版
解决时间 2021-02-04 02:20
JAVA中Paint与paintComponent方法的区别是什么
最佳答案
根据我的经验,问题还是在paint方法里,你可以这样试试:
不要通过重写paint方法来画图,这会造成很多难以估计的影响。比较好的办法是重写paintComponent方法,如下:
public void paintComponent(Graphics g)
{
super.paintComponent(g);
//然后再在这里写你的绘图代码
}
因为你只是需要绘图,用图片覆盖JPanel即可,不需要改写paint方法。
全部回答
看你使用的是awt包中的组件,还是swing包中的组件。
awt中使用paint()
swing中使用paintComponent()
在JAVA中Paint与paintComponent方法的区别:
paint是绘制容器,比如JFRAME就绘JFrame不重绘JFrame上的组件比如JButton;
paintComponent是绘制容器中的组件,比如用这个就不能绘制JFrame中的内容,只能绘Add方法加在JFrame上的组件。
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负责重画。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
甘溪双联超市我想知道这个在什么地方
袪荡的意思是什么啊?知道的请说下!
悬浮聚合法(正向悬浮聚合)
昌邑市卜庄镇柳家村村民委员会地址在什么地方
骑马与砍杀战团和女性对话为什么没有我是你热
双歧因子与益生元的区别
微信怎样能不用手机号码来注册?.
鸣指的意思是什么啊?知道的请说下!
汽水从冰箱冰冻后拿出后才结冰??求原理??
一元一个的打火机里面的电子是多少伏?
中国获得D-18T发动机技术吗
科比退役搞笑段子
我的花呗消息额度从2000提升到3000后,为什么
顶管工程记录中 管前掏土长度是指什么
请问谁知道投诉珠海电台里的职员是在那里投诉
推荐资讯
家骏五金我想知道这个在什么地方
锦州和沟帮子哪离的近
学校操场的面积约为1平方千米 对还是错?
新航道(农科三路)这个地址在什么地方,我要处
食家庄土菜馆地址有知道的么?有点事想过去
华硕我的电池显示电源已接通未充电拔了就关机
圣唐乳业卡倍多羊奶粉在哪里啊,我有事要去这
谷男商务宾馆地址有知道的么?有点事想过去
棒针毛衣编织款式手工 编织袖子怎么编
烈风圣翼s极地光盾s赤练狂刀哪个更厉害
茗梦轩茶楼地址在哪,我要去那里办事
藕心钱的意思是什么啊?知道的请说下!
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?