Java 不调用paint()方法进行绘图有感

java绘图经常用的就是重写paint()方法获得graphics对象进行绘图的。

如何不调用paint()方法从而在面板上绘图呢?

Graphics2D g2d  = (Graphics2D)getGraphics();

可以直接获取到Graphics2D的对象进行画图,当然理论上是这样的,

但实际上当draw了一个图形后,结果面板上却没有显示!遍寻各大论坛贴吧终于找到了线索:原来不是没有画上去,而是画完面板一刷新就没了:

Java 不调用paint()方法进行绘图有感_第1张图片

为了证实这个我用了一个办法:for循环绘制

for(;;){

     gd=(Graphics2D)getGraphics();

    gd.setColor(Color.PINK);

    gd.fillOval(100, 100, 100, 100);//绘制一个

}

果不其然,终于在面板上出来图形了,可是这大大的消耗性能,运行没几秒,cup飙升!

当然这只是为了证实而已,实际开发中还是重写paint()方法,也不会导致闪屏的问题!

你可能感兴趣的:(Java 不调用paint()方法进行绘图有感)