2014-01-15 39 views
1

我想画一些在Java编码的模拟过程中收集的统计图。我决定尝试JavaFX,因为它有一些很棒的图形功能。但是,由于我以前从未使用过它,我不确定是否可以将JavaFX功能添加到最初没有设置的项目中。是否可以在普通Java应用程序中使用JavaFX绘制图形?

我已经将javafx库添加到了我的项目中,并且复制粘贴了线图上的JavaFX教程http://docs.oracle.com/javafx/2/charts/line-chart.htm(没有主函数)来测试图表是否正确显示。

但是,他们不这样做。我

LineChartSample.launch(new String()); 

和运行程序,并没有看到任何图形后调用图形在我runsimulation功能(这是从的SwingWorker线程调用),我添加一个println电话后,发现该程序没有按”永远达不到它;即它终止于LineChartSample的调用。

我做错了什么?我正在尝试什么?

编辑:什么样的代码的部分看起来像一个简单的总结:

一个JButton类InputGUI调用

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

你可以发布SSCCE吗? – Sebastian

+0

增加了一些代码。 – Martin

回答

2

尝试

public static void runsimulation() throws IOException, InterruptedException { 
    ... 
    LineChartSample.launch(LineChartSample.class, ""); 
}  

了解更多信息:

http://docs.oracle.com/javafx/2/api/javafx/application/Application.html#launch%28java.lang.String...%29

注意,你不应该真正做到这一点这样的,因为你不能把这个代码比一次更您的应用程序的一生相反,您应该从构建场景图的LineChartSample中提取代码,并使用JFXPanel将场景图导入到您的swing应用程序中。

+0

@Martin:编辑我的答案以解决一些重要问题。 – Sebastian

相关问题