Java getGraphics()返回null
下面是代码(我在这个类中扩展了JFrame)(点'size'是屏幕的大小): 我知道createImage方法存在问题,正如它在描述“如果组件不可显示,返回值可能为null”中所说的那样。然而,我看到了(真实的)!这一直是我整个项目中的一个问题,过去的解决方案都很奇怪。然而,这一次,我似乎无法修复它 它周期性地工作和不工作,可能工作10次,然后不工作3次,循环重复 我曾尝试将createImage转换为BuffereImage,这是我在许多谷歌搜索中提出的建议,但问题仍然存在 我也尝试过不扩展jframe,而是创建一个“jframe jframe=new jframe()”,并使用它来绘制/etc,但问题仍然存在。这是由 这些示例创建与屏幕兼容的缓冲图像:Java getGraphics()返回null,java,image.createimage,Java,Image.createimage,下面是代码(我在这个类中扩展了JFrame)(点'size'是屏幕的大小): 我知道createImage方法存在问题,正如它在描述“如果组件不可显示,返回值可能为null”中所说的那样。然而,我看到了(真实的)!这一直是我整个项目中的一个问题,过去的解决方案都很奇怪。然而,这一次,我似乎无法修复它 它周期性地工作和不工作,可能工作10次,然后不工作3次,循环重复 我曾尝试将createImage转换为BuffereImage,这是我在许多谷歌搜索中提出的建议,但问题仍然存在 我也尝试过不扩展j
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次,直到它工作!不客气!如果它解决了问题,一定要接受答案,这样问题就结束了!