2012-03-31 21 views
1

私は入力ストリームから読み込み、データを配列に格納しています。ここでいくつかのテスト条件(そして入力ストリームが完全に読み込まれていないにもかかわらず、グラフを作成したい場合)forループでJfreeChartを作成

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

+0

現在、私はデバッグしているので、テスト条件なしでメインを実行するとトリガされます。私はアプリケーションフレームを拡張し、setCOntentPaneメソッドを使ってグラフを表示しています。 – user1092042

+0

'add()'メソッドは、「必要に応じて 'contentPane'に転送するようにオーバーライドされました。」 - [JFrame](http://docs.oracle.com/javase/6/docs/api/javax/swing/ JFrame.html)。 – trashgod

答えて

2

SwingWorkerなどの別のスレッドでデータ収集ループを実行します。モデルを完成させる場合にのみpublish()を呼び出し、表示したいものをマーキングします。グラフをprocess()に表示します。

+0

私はそれを試してみましょう。 – user1092042

関連する問題