繁体   English   中英

Java 3d显示窗口“闪烁”

[英]Java 3d display window “flashing”

我最近开始探索Java的3d图形领域,并在经过3d API的大量搜索之后,我得出了我认为最适合我的Java 3d API的信息。 看完第一个教程后,我想我会复制代码并尝试一下,

import com.sun.j3d.utils.universe.SimpleUniverse;
import com.sun.j3d.utils.geometry.ColorCube;
import javax.media.j3d.BranchGroup;

public class Hello3d 
{
    public Hello3d()
    {
       SimpleUniverse universe = new SimpleUniverse();
       BranchGroup group = new BranchGroup();
       group.addChild(new ColorCube(0.3));
       universe.getViewingPlatform().setNominalViewingTransform();
       universe.addBranchGraph(group);
    }

    public static void main(String[] args ) {
       new Hello3d();  
    }
}

该程序非常简单,只需要输出一个面向相机的红色立方体,使其外观为红色正方形即可。

我将其放入以下文件结构:

java3d/
├── ext/
│   ├── jd3core.jar
│   ├── jd3utils.jar
│   └── vecmath.jar
│ 
└── Hello3d.java

然后我像这样在命令行上编译

javac -cp "ext/*"; Hello3d.java

并以完全相同的方式运行

java -cp "ext/*"; Hello3d

这是我遇到问题的地方。 显示屏有时是预期的输出,有时只是完全空白。 两种状态下的窗口的屏幕截图

调整窗口大小时,显示屏将在正确的输出和空白屏幕之间剧烈闪烁。 有什么办法可以解决我的显示窗口在一半时间内无法工作的事实吗?

其他可能有帮助的信息:

我正在运行Windows 10
使用Java 3d 1.5.1(试图使用1.5.2和实验性1.6.0,相同的问题)
我正在使用Java 7

我认为这个问题可能与我的问题有关,但我不太了解我可以解决的问题。

经过进一步的研究,我在这里找到了答案

您需要做的只是将System.setProperty("sun.awt.noerasebackground", "true"); 作为主要的第一行,希望这对这个问题有帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM