为什么VolatileImage.getGraphics()始终创建一个新的Graphics实例?

时间:2015-09-18 10:04:00

标签: java graphics graphics2d java-2d

我有以下代码

 final Graphics2D g2d1 = (Graphics2D) volatileImg.getGraphics();
 final Graphics2D g2d2 = (Graphics2D) volatileImg.getGraphics();

为什么g2d1 != g2d2 ??

为什么volatileImg.getGraphics()在每个调用中创建一个新实例?

有什么方法可以始终保持相同的Graphics2D

谢谢:)

1 个答案:

答案 0 :(得分:0)

这是我为改善JComponent View的性能所做的工作: 1-使用VolatileImage而不是BufferedImage,仅在宽度和高度时创建新实例。

volatileImg = component.getGraphicsConfiguration().createCompatibleVolatileImage(width, heigth, Transparency.BITMASK); // I used Transparency.BITMASK for more cpu rapidity

2-我在字段中保留了Graphics的引用,以调用Graphics#dispose。

你怎么看?