我有以下代码
final Graphics2D g2d1 = (Graphics2D) volatileImg.getGraphics();
final Graphics2D g2d2 = (Graphics2D) volatileImg.getGraphics();
为什么g2d1 != g2d2
??
为什么volatileImg.getGraphics()
在每个调用中创建一个新实例?
有什么方法可以始终保持相同的Graphics2D
?
谢谢:)
答案 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。
你怎么看?