首页 > 解决方案 > Java 1.8.0_251,OSX Catalina,将字体渲染到屏幕外窗口损坏

问题描述

最新的 Java 和最新的 OSX 的某些组合严重损坏了字体到屏幕外图像的渲染。在甲骨文/苹果齐心协力之前,任何人都可以提出解决方法吗?

这是我在渲染到屏幕外图像时看到的内容: 在此处输入图像描述

这是我在其他任何地方看到的,包括窗口,如果直接渲染到 mac 上的普通窗口,而不是缓冲区 在此处输入图像描述

标签: javamacosmacos-catalina

解决方案


我找到了一个似乎令人满意的解决方法;使用实现相关的“易失性图像”进行离屏绘图。我从 java 的重绘管理器中抄袭了这个方法:

        public static Image getVolatileImage(Component c,int width,int height)
    {
       GraphicsConfiguration config = c.getGraphicsConfiguration();
        if (config == null) {
            config = GraphicsEnvironment.getLocalGraphicsEnvironment().
                            getDefaultScreenDevice().getDefaultConfiguration();
        }
       return config.createCompatibleVolatileImage(width, height, Transparency.OPAQUE);
    }

推荐阅读