2012-03-31 135 views
1

我正在讀取輸入流並將數據存儲在數組中。現在如果有一些測試條件(儘管輸入流沒有完全讀取,我想創建一個圖表)。在for循環中創建JfreeCharts

for (int i = 0; i < jsonMainArr.size(); i++) 
{ 
    JSONObject childJSONObject = jsonMainArr.getJSONObject(i); 
    String date1 = childJSONObject.getString("date"); 
    DateFormat forma=new SimpleDateFormat("yyyy-MM-dd"); 
    Date dre=forma.parse(date1); 
    d[i]=dre; 

    if(somecondition) 
    { 
     CandleStickChart chart = new CandleStickChart("Candle Stick Chart"); 
     chart.pack(); 
     RefineryUtilities.centerFrameOnScreen(chart); 
     chart.setVisible(true); 
    } 
} 

現在,如果dre是一個特定的數據,我想顯示圖表。我不想擺脫for循環,因爲其他數據(下一個公司數據仍然需要解析)。我注意到這在循環內不起作用,只能在循環之外工作。我能做些什麼來克服這個困難。

+0

有些事情需要澄清在這裏:你是否在awt/swing框架上顯示圖表?什麼觸發此代碼運行(它是一個像點擊的UI事件)?您想要顯示圖表多長時間?你想讓用戶確認/關閉它嗎? – daveb 2012-03-31 13:04:58

+0

目前我正在調試,所以當我運行沒有測試條件的主要時它被觸發。我通過擴展應用程序框架並使用setCOntentPane方法來顯示圖形。 – user1092042 2012-03-31 13:17:52

+0

'add()'方法「已被覆蓋以根據需要轉發到'contentPane'。」 - [JFrame](http://docs.oracle.com/javase/6/docs/api/javax/swing/ JFrame.html)。 – trashgod 2012-04-01 13:52:35

回答

2

在另一個線程上運行數據採集循環,例如SwingWorker。僅爲已完成的模型調用publish(),標記要顯示的模型。在process()中顯示圖表。

+0

讓我試試看。 – user1092042 2012-04-01 05:55:21