removeAll();
setBackground(Color.orange);
paint(g);
}
removeAll();//可以去除所有的Container对象
但如果是底层的Graphics所绘的图形呢?如何去除?
现在我都是在上面重新画一个背景,再用Graphics进行绘制。
这样一层一层的绘制,一层一层的叠加,之前的东西只不过在新的图形的下面,并不有被去除。
我想问:有没有办法直接将Graphics所绘的图像从Container上去除。
4 个解决方案
#1
Compopent定义了update()方法
它就是这么干的
重新再绘制一遍
但我担心:那些被绘制的对象,会不会给系统带来很大的压力?
它就是这么干的
重新再绘制一遍
但我担心:那些被绘制的对象,会不会给系统带来很大的压力?
#2
需要吗?不需要吧
在屏外画布上,图像的复杂程度和画布大小没有联系,
假如当前界面对应的内存画布是1024×768
那么,你画一条线,它是那么大
你画一幅《蒙娜丽莎》,它还是那么大
拷屏操作总是执行同样的工作,不会是想象中的越来越不堪重负...
当然,大量对象管理会占用客观资源,除非你把所有由句柄graphics绘制的图形
都管理起来,想PS绘图一样,但是既然是自己管理,当然也就知道如何gc()了吧
在屏外画布上,图像的复杂程度和画布大小没有联系,
假如当前界面对应的内存画布是1024×768
那么,你画一条线,它是那么大
你画一幅《蒙娜丽莎》,它还是那么大
拷屏操作总是执行同样的工作,不会是想象中的越来越不堪重负...
当然,大量对象管理会占用客观资源,除非你把所有由句柄graphics绘制的图形
都管理起来,想PS绘图一样,但是既然是自己管理,当然也就知道如何gc()了吧
#3
就是再用Graphics重绘一下,不会造成很大的压力的,但是不要全屏重绘,只要重绘你有图像的地方,这样对系统的负担很小
#4
Compopent.update()
#1
Compopent定义了update()方法
它就是这么干的
重新再绘制一遍
但我担心:那些被绘制的对象,会不会给系统带来很大的压力?
它就是这么干的
重新再绘制一遍
但我担心:那些被绘制的对象,会不会给系统带来很大的压力?
#2
需要吗?不需要吧
在屏外画布上,图像的复杂程度和画布大小没有联系,
假如当前界面对应的内存画布是1024×768
那么,你画一条线,它是那么大
你画一幅《蒙娜丽莎》,它还是那么大
拷屏操作总是执行同样的工作,不会是想象中的越来越不堪重负...
当然,大量对象管理会占用客观资源,除非你把所有由句柄graphics绘制的图形
都管理起来,想PS绘图一样,但是既然是自己管理,当然也就知道如何gc()了吧
在屏外画布上,图像的复杂程度和画布大小没有联系,
假如当前界面对应的内存画布是1024×768
那么,你画一条线,它是那么大
你画一幅《蒙娜丽莎》,它还是那么大
拷屏操作总是执行同样的工作,不会是想象中的越来越不堪重负...
当然,大量对象管理会占用客观资源,除非你把所有由句柄graphics绘制的图形
都管理起来,想PS绘图一样,但是既然是自己管理,当然也就知道如何gc()了吧
#3
就是再用Graphics重绘一下,不会造成很大的压力的,但是不要全屏重绘,只要重绘你有图像的地方,这样对系统的负担很小
#4
Compopent.update()