楼主 admin 发表于2010-10-9 14:53:24
Java程序性能之三

Java 2D提供了许多cool功能,用Java2D能做许多图形特效,合理使用一些API可以帮助实现和c++类似的性能:

1.GraphicsConfiguration,createCompatibleImage(int width,int height,int transparency)GraphicsConfiguration,createCompatibleVolatileImage(int width,int height,ImageCapabilities caps,int transparency)这些API能够使创建的Image更快的画到屏幕上。下边是我们项目中的一小段代码,创建了一个窗口的蒙板Image:

protected Image createImage() {

       int width = getWidth();

       int height =getHeight();

       BufferedImage image = getGraphicsConfiguration().createCompatibleImage(width, height, Transparency.TRANSLUCENT);

       Graphics2D g = image.createGraphics();

       g.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC, getAlpha()));

       g.setColor(getBackground());

       g.fillRect(0, 0, width, height);

       g.dispose();

       return image;

}

2.必要时使用VolatileImage,这个对象提供了硬件加速的Image。

3.做Java game的可以使用Frame,createBufferStrategy,提供了供开发Java game使用的API,结合使用GraphicsDevice,setDisplayMode和 GraphicsDevice,setFullScreenWindow提供的全屏幕和设置显示分辨率的功能。