2

这是代码(我在这个类中扩展 JFrame)(点'大小'是屏幕的大小):

setVisible(true);
backBuffer = createImage(size.x, size.y);
backGraphics = backBuffer.getGraphics();

我知道 createImage 方法存在问题,正如描述中所说的“如果组件不可显示,返回值可能为空”。然而我 setVisible(true)!这一直是我的程序中的一个问题,过去的解决方案很奇怪。然而,这一次,我似乎无法修复它。

它一直在周期性地工作和不工作,可能工作 10 次然后 dosnt 工作 3 次,并且循环重复。

我已经尝试将 createImage 转换为 BufferedImage,这是我的许多谷歌搜索所建议的,但问题仍然存在。

我也尝试过不扩展jframe,而是创建一个'JFrame jframe = new JFrame()',并使用它来绘制/等,但问题仍然存在。

4

1 回答 1

1

这来自这里

这些示例创建与屏幕兼容的缓冲图像:

GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
GraphicsDevice gs = ge.getDefaultScreenDevice(); 
GraphicsConfiguration gc = gs.getDefaultConfiguration();

// Create an image that does not support transparency 

bimage = gc.createCompatibleImage(width, height, Transparency.OPAQUE);

// Create an image that supports transparent pixels 

bimage = gc.createCompatibleImage(width, height, Transparency.BITMASK);

// Create an image that supports arbitrary levels of transparency 

bimage = gc.createCompatibleImage(width, height, Transparency.TRANSLUCENT);
于 2011-09-01T19:45:43.187 回答