Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/393.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何从GUI启动Jzy3d图形?_Java_Swing_Opengl_Graphics_Jzy3d - Fatal编程技术网

Java 如何从GUI启动Jzy3d图形?

Java 如何从GUI启动Jzy3d图形?,java,swing,opengl,graphics,jzy3d,Java,Swing,Opengl,Graphics,Jzy3d,我想知道如何从GUI启动Jzy3D图形。基本上,我已经创建了一个简单的GUI,它允许我的用户在单击“3D graph”项时显示带有分散点的3D图形。然而,当我这样做时,会弹出一个没有任何图形的纯白色窗口,而不是一个有图形的白色窗口!另外,如果我把Jzy3D东西放在main方法中,它运行得非常好。我不想这样做,我只希望当用户单击该项时图形才会弹出 下面是代码的相关部分 public class OpenChart { public void launch(){ int size = 1

我想知道如何从GUI启动Jzy3D图形。基本上,我已经创建了一个简单的GUI,它允许我的用户在单击“3D graph”项时显示带有分散点的3D图形。然而,当我这样做时,会弹出一个没有任何图形的纯白色窗口,而不是一个有图形的白色窗口!另外,如果我把Jzy3D东西放在main方法中,它运行得非常好。我不想这样做,我只希望当用户单击该项时图形才会弹出

下面是代码的相关部分

public class OpenChart {

public void launch(){

    int size = 10000;
    float x;
    float y;
    float z;

    Coord3d[] points = new Coord3d[size];

    for(int i=0; i<size; i++){
        x = (float)Math.random() - 0.5f;
        y = (float)Math.random() - 0.5f;
        z = (float)Math.random() - 0.5f;
        points[i] = new Coord3d(x, y, z);
    }

    Scatter scatter = new Scatter(points);
    System.out.println("fwee: " + points.length);
    Chart chart = new Chart();
    chart.getAxeLayout().setMainColor(org.jzy3d.colors.Color.RED);
    chart.getView().setBackgroundColor(org.jzy3d.colors.Color.WHITE);
    chart.getScene().add(scatter);

    ChartLauncher.openChart(chart);
}

}

事件调度线程(EDT)在上调度所有swing事件

这还负责处理油漆请求。由于没有使用jzy3d,这两个版本可能会相互阻塞(这可能解释了为什么独立运行时它会工作)


您可以尝试在另一个线程中启动图形。

事件调度线程(EDT)在处调度所有swing事件

这还负责处理油漆请求。由于没有使用jzy3d,这两个版本可能会相互阻塞(这可能解释了为什么独立运行时它会工作)


您可以尝试在另一个线程中启动图表。

您尝试过在ETD一侧启动图表吗?很抱歉,ETD是什么意思?所有的swing事件都由事件调度线程(ETD)调度。这还负责处理油漆请求。由于没有使用jzy3d,这两个组件可能会相互阻塞(这可能解释了为什么独立运行时它会工作)。您可以尝试在另一个线程中启动图形。我从action listener部分启动了一个线程,它成功了!非常感谢你的帮助!这只是一个幸运的猜测,但值得一试:)您尝试过在ETD之外启动图表吗?很抱歉,ETD是什么意思?所有的swing事件都是由事件调度线程(ETD)调度的。这还负责处理油漆请求。由于没有使用jzy3d,这两个组件可能会相互阻塞(这可能解释了为什么独立运行时它会工作)。您可以尝试在另一个线程中启动图形。我从action listener部分启动了一个线程,它成功了!非常感谢你的帮助!这只是一个幸运的猜测,但值得一试:)
testAll3D.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e)
        {   
            OpenChart open = new OpenChart();
            open.launch();
        }
    });