JAVA中paint()是自动执行的吗?
panit(Graphicsg)是component类的子类都有的方法。。是否自动调用?还是需要在run()中调用?如果是自动调用的话,是否当对一个构造方法包含有pain...
panit(Graphics g)是component类的子类都有的方法。。是否自动调用?还是需要在run()中调用?如果是自动调用的话,是否当对一个构造方法包含有paint()方法的class实例化一个对象后调用构造方法后就会自动产生Graphics,然后自动调用paint()方法呢?
P.S在线程中。。刚注册没多少积分。。希望高手前辈多些指导~谢谢 展开
P.S在线程中。。刚注册没多少积分。。希望高手前辈多些指导~谢谢 展开
2个回答
展开全部
是的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(),就达到了动画的效果
)
调用过一次的 时候 可以在线程里用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(),就达到了动画的效果
)
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询