我正在开发一个使用 Java3D 和 Jmol 的项目(它是 3D 化学结构的查看器)。我必须创建能够在结构的 Java3D 和 Jmol 表示之间切换的视图。
我已经设法做到了,但是当我将 JPanel 与 JmolPanel 和 Canvas3D 交换时,交换区域会闪烁。
我只是通过以下方式交换面板:
public static void changeView(JPanel c) {
c.removeAll();
if (var) {
c.add(canvas);
} else {
c.add(jmolPanel);
}
c.revalidate();
var = !var;
}
可以在此处找到使用按钮创建用于交换面板的框架的代码示例:http: //pastebin.com/3F2gKBgb
要运行此示例,您需要 Jmol.jar(可在此处找到http://jmol.sourceforge.net/download/)和 Java3D(http://java3d.java.net/binary-builds.html)
我尝试在 JPanel 中设置双缓冲,但没有帮助。您知道如何解决闪烁问题吗?