我想绘制一些用Java编码的模拟过程中收集的统计图表。我决定尝试JavaFX,因为它有一些很棒的图形功能。但是,由于我以前从未使用它,我不确定是否甚至可以将JavaFX功能添加到最初未设置的项目中。
我已将javafx库添加到我的项目中,并在http://docs.oracle.com/javafx/2/charts/line-chart.htm(没有主函数)的线图上复制粘贴JavaFX教程,以测试图表是否正确显示。
但是,他们没有。我使用在我的运行模拟函数(从SwingWorker线程调用)中调用图形LineChartSample.launch(new String());
并且在运行程序并且没有看到任何图形之后,我在调用之后添加了一个println并注意到该程序没有到达它;即它终止于对LineChartSample的调用。
我做错了吗?我正在尝试甚至可能吗?
编辑:快速总结代码的这一部分:
InputGUI类中的JButton调用
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
new AnswerWorker().execute();
}
public class AnswerWorker extends SwingWorker<Void, Integer> {
protected Void doInBackground() throws Exception
{
AMEC.runsimulation();
return null;
}
protected void done()
{
try {
JOptionPane.showMessageDialog(InputGUI.this, AMEC.unsuccesfulpercentage + "% of iterations had trucks that had to sleep over");
AMEC.unsuccesfulpercentage = 0;
}
catch (Exception e)
{
e.printStackTrace();
}
}
AMEC.runsimulation调用
public static void runsimulation() throws IOException, InterruptedException {
...
LineChartSample.launch(new String());
}
我得到了AnswerWorker完成时抛出的JDialogBox,但没有图表,每当我在LineChartSample.launch调用后测试println时,它就永远无法到达。
答案 0 :(得分:2)
试
public static void runsimulation() throws IOException, InterruptedException {
...
LineChartSample.launch(LineChartSample.class, "");
}
了解更多信息:
请注意,您不应该这样做,因为您无法在应用程序生命周期中多次调用此代码。相反,您应该从构建场景图的LineChartSample中提取代码,并使用JFXPanel将场景图embed放入您的swing应用程序中。