Java getGraphics()返回null

Java getGraphics()返回null,java,image.createimage,Java,Image.createimage,下面是代码(我在这个类中扩展了JFrame)(点'size'是屏幕的大小): 我知道createImage方法存在问题,正如它在描述“如果组件不可显示,返回值可能为null”中所说的那样。然而,我看到了(真实的)!这一直是我整个项目中的一个问题,过去的解决方案都很奇怪。然而,这一次,我似乎无法修复它 它周期性地工作和不工作,可能工作10次,然后不工作3次,循环重复 我曾尝试将createImage转换为BuffereImage,这是我在许多谷歌搜索中提出的建议,但问题仍然存在 我也尝试过不扩展j

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

我知道createImage方法存在问题,正如它在描述“如果组件不可显示,返回值可能为null”中所说的那样。然而,我看到了(真实的)!这一直是我整个项目中的一个问题,过去的解决方案都很奇怪。然而,这一次,我似乎无法修复它

它周期性地工作和不工作,可能工作10次,然后不工作3次,循环重复

我曾尝试将createImage转换为BuffereImage,这是我在许多谷歌搜索中提出的建议,但问题仍然存在

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

这是由

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

setVisible(true);
backBuffer = createImage(size.x, size.y);
backGraphics = backBuffer.getGraphics();
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);

非常感谢你!你不知道你救了我多少麻烦。。。它令人难以置信的恼火,必须运行5次,直到它工作!不客气!如果它解决了问题,一定要接受答案,这样问题就结束了!