bobo老师,关于函数执行的问题
来源:2-7 动画基础
qq_无限之光_0
2019-01-19
AlgoVisHelper.setStrokeWidth(g2d, 1);
AlgoVisHelper.setColor(g2d, Color.RED);
for(Circle circle:circles)
{
AlgoVisHelper.strokecircle(g2d, circle.x, circle.y, circle.getR());
}
这段在paintComponent()中的绘制语句是什么时候在main方法中调用的?如果是AlgoFram 类初始化时就调用了,那为什么在后面的另一个线程中还能执行?
写回答
1回答
-
liuyubobobo
2019-01-19
JPanel内封装了一个线程会在“需要”的时候的调用。什么时候是“需要”的时候比较复杂可以简单理解成每隔一段时间自动调用一次这个调用对用户屏蔽了。用户只需要覆盖这个方法所以是覆盖而不是自动以德一个方法指明它在调用的时候绘制逻辑是怎样的就好了
这就是框架的好处屏蔽掉了底层的机制我们只需要关注业务就好了具体绘制什么。当然了这也是框架的坏处
其实大多数绘制框架都是这样的机制。比如iOS也是如此。不用操心什么时候绘制等底层的系统逻辑问题开发者可以把更多的注意力放在绘制什么上。比如数据库也是如此开发者不用操心如何高速的读取数据只需要关心存出什么数据数据如何组织就好了
00
相似问题
关于迷宫生成问题的思考和疑问
回答 2
关于github上面代码的2个问题
回答 1
关于球体碰撞的问题
回答 1
bobo老师,关于其他关卡测试
回答 1
深度遍历生成迷宫,关于两行代码的顺序问题
回答 1