java绘图经常用的就是重写paint()方法获得graphics对象进行绘图的。
如何不调用paint()方法从而在面板上绘图呢?
Graphics2D g2d = (Graphics2D)getGraphics();
可以直接获取到Graphics2D的对象进行画图,当然理论上是这样的,
但实际上当draw了一个图形后,结果面板上却没有显示!遍寻各大论坛贴吧终于找到了线索:原来不是没有画上去,而是画完面板一刷新就没了:
为了证实这个我用了一个办法:for循环绘制
for(;;){
gd=(Graphics2D)getGraphics();
gd.setColor(Color.PINK);
gd.fillOval(100, 100, 100, 100);//绘制一个
}
果不其然,终于在面板上出来图形了,可是这大大的消耗性能,运行没几秒,cup飙升!
当然这只是为了证实而已,实际开发中还是重写paint()方法,也不会导致闪屏的问题!