我正在尝试绘制一个图形。其中对于双缓冲,我使用的是组件类的CreateImage()方法。但是使用与输入相同的属性,此方法随机返回null值。当我搜索时,我发现当GraphicsEnvironmemt.headless()返回true时会发生这种情况。然后我打印GraphicsEnvironmemt.headless()的值,它总是返回false。 当createimage()返回null时是否还有其他任何情况。我搜索了很多但没有得到适当的答案。
答案 0 :(得分:0)
如果组件不可显示,则返回值可能为null
是的,如果headless
为false,则会发生这种情况,但如果Component
未附加到显示的容器,也会发生这种情况。当组件连接到本机对等方时,该组件将变为可显示。如果组件从未在屏幕上显示或者它所附着的窗口(直接或间接)被丢弃,则会发生这种情况
您可以使用类似......
的内容GraphicsConfiguration gc = GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice().getDefaultConfiguration();
BufferedImage image = gc.createCompatibleImage(width, height, transparency);
创建BufferedImage
,该GraphicsConfiguration
已针对指定的{{1}}