我有一个包含在 JPanel 中并显示在屏幕上的 AWT Canvas 。我目前使用 Java 7 update 45 并在 Red Hat 6 上运行。
当用户请求支持 openGL 立体的 Canvas 时,我删除现有 Canvas ,创建一个新 Canvas ,选择立体视觉并在 Canvas 上设置适当的 GraphicsConfiguration。问题是,随着 Java 7 中的新更改,当将此 Canvas 添加回 JPanel 时,Jpanel 的 GraphicsConfiguration(GC) 会覆盖 Canvas 的 GraphicsConfiguration。
这发生在 java.awt.Container.addImpl() 中,它调用包范围方法 Component.setGraphicsConfiguration()。
我目前正在此包作用域方法上使用反射来从我的代码中调用该方法并更改 Canvas 上的 GC。
还有比这更好的解决方案吗?换句话说,如何在将组件添加到父组件后更改其 GC?
最佳答案
我建议您根本不要更改 GC。相反,只需尝试创建具有立体功能的 GC 并允许回退到非立体 GC。如果成功,则启用立体渲染路径和菜单条目。
关于java - 使用 Java 7 的 Linux 上的立体问题 - 如何在将组件添加到父组件后更改组件的 GC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21239229/