JAVA中paint()是自动执行的吗?

panit(Graphicsg)是component类的子类都有的方法。。是否自动调用?还是需要在run()中调用?如果是自动调用的话,是否当对一个构造方法包含有pain... panit(Graphics g)是component类的子类都有的方法。。是否自动调用?还是需要在run()中调用?如果是自动调用的话,是否当对一个构造方法包含有paint()方法的class实例化一个对象后调用构造方法后就会自动产生Graphics,然后自动调用paint()方法呢?

P.S在线程中。。刚注册没多少积分。。希望高手前辈多些指导~谢谢
展开
 我来答
百度网友8a495f3
推荐于2017-11-26 · TA获得超过340个赞
知道小有建树答主
回答量:296
采纳率:0%
帮助的人:183万
展开全部
是的paint()方法只会自动调用一次,而且 你用的时候要自己重写这个方法
调用过一次的 时候 可以在线程里用repaint() 再度调用

关于Graphics ; 楼主的观点大部分是对的,但是有点小问题
首先 你并没有 调用paint(g)方法,而是 系统调用的,或者是你自己repaint()
调用的
如果 你要调用paint()方法,你必须传进来一个 参数 Graphics
Graphics 这个对象的 表示的 是,你的绘制环境

比如 有2个 JFrame jf1,jf2,那么对应2个Graphics g1,g2
(g1=jf1.getGraphics(),g2=jf2.getGraphics())//获取 绘制环境
如果jf1 是显示的,jf2是隐藏的
那么 你自己调用 paint(g2)的时候 ,不会显示绘制的内容,因为
paint()实在jf2上绘制的,

“包含有paint()方法的class实例化一个对象后调用构造方法后就会自动产生Graphics”

Graphics 这个对象不是在 你自己写的 类中产生的
而是 在 JFrame等 一些 可以作为容器类里 已经实例化的
也就是说 他已经定好了 绘制环境,
所以 你写JFrame,什么的 需要实现paint()方法的 时候
你不需要指定一个Graphics 说明你的 绘制环境

PS(你也可试试 在 线程里调用 paint(),好像也可以,因为 毕竟也是一个方法
,我曾经 在 paint()方法 里调用过 repaint(),而不是在线程里调用repaint(),就达到了动画的效果
)
旺旺商城
2008-10-16 · 贡献了超过134个回答
知道答主
回答量:134
采纳率:0%
帮助的人:0
展开全部
你可以单独写一个paint(Graphics g)然后在component子类对象处调用repain以达到重新调用pain的目的,repain已实现的方法。希望对你有帮助
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式