2014-01-15 71 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

相關問題