gpt4 book ai didi

java - 如何从 GUI 启动 Jzy3d 图?

转载 作者:太空宇宙 更新时间:2023-11-04 08:08:56 25 4
gpt4 key购买 nike

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

这是代码的相关部分。

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);
}

}

GUI JMenuItem 代码:​​

testAll3D.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e)
{
OpenChart open = new OpenChart();
open.launch();
}
});

最佳答案

所有 swing 事件均由事件调度线程 (EDT) 调度。

这还负责处理绘制请求。没有使用 jzy3d,两者可能会互相阻塞(这可能解释了为什么它在独立运行时有效)。

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

关于java - 如何从 GUI 启动 Jzy3d 图?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11588809/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com