2015-09-25 26 views
0

我有一個運行良好的程序,它重複使用不同的自變量值的一系列公式。我現在想在循環的每次迭代之後繪製一個計算圖。這是我到目前爲止有:試圖做一個不斷運行的線圖

public static void main(String[] args) { 


    JFrame window=new JFrame(); 
    window.setTitle("Try"); 
    window.setSize(600, 400); 
    window.setLayout(new BorderLayout()); 
    window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    window.setVisible(true); 

    XYSeries series = new XYSeries("graph"); 
    XYSeriesCollection dataset= new XYSeriesCollection(series); 

    ... 

我最大的問題是我怎麼把我的數據,並生成一個數據集,然後我怎麼做圖表更新循環的每次迭代後?我已經導入了JFreeChart類和一些swing。任何和所有的見解將不勝感激。

回答

0

所以我在一段時間後想到了這一點。訣竅是在循環內部設置可見。但是現在,JFrame隨着每次迭代重新繪製。我不知道是否有辦法保持幀不變。如果有人知道,我會很感激幫助。

package trylog{ 
import javax.swing.JFrame; 
import java.awt.BorderLayout; 
java.util.List; 
import org.jfree.chart.ChartFactory; 
import org.jfree.chart.ChartPanel; 
import org.jfree.chart.JFreeChart; 
import org.jfree.chart.axis.DateAxis; 
import org.jfree.chart.axis.ValueAxis; 
import org.jfree.chart.plot.CombinedDomainXYPlot; 
import org.jfree.chart.plot.XYPlot; 
import org.jfree.data.category.CategoryDataset; 
import org.jfree.data.category.DefaultCategoryDataset; 
import org.jfree.data.general.Dataset; 
import org.jfree.data.general.DatasetChangeListener; 
import org.jfree.data.general.DatasetGroup; 
import org.jfree.data.time.Millisecond; 
import org.jfree.data.time.TimeSeries; 
import org.jfree.data.time.TimeSeriesCollection; 
import org.jfree.data.xy.XYDataset; 
import org.jfree.data.xy.XYSeries; 
import org.jfree.data.xy.XYSeriesCollection; 
import org.jfree.ui.ApplicationFrame; 
import org.jfree.ui.RefineryUtilities; 
import sun.security.jca.GetInstance.Instance; 

public class TryLog { 
private static Object InstanceTools; 
public static void main(String[] args) { 


    JFrame window=new JFrame(); 
    window.setTitle("Try"); 
    window.setSize(600, 400); 
    window.setLayout(new BorderLayout()); 
    window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    //window.setVisible(true); 

    XYSeries series = new XYSeries("graph"); 
    XYSeriesCollection dataset= new XYSeriesCollection(series); 
    double[] newArray= new double[1000]; 
    for (int j=0;j<1000;j++) 
    { 
     newArray[j]=1+10; 
    } 
    JFreeChart chart=ChartFactory.createXYLineChart("Graph Try", "hi", "bye", dataset); 
    window.add(new ChartPanel(chart),BorderLayout.CENTER); 

    int x=0; 
    int number=10; 

    JFrame window1=new JFrame(); 
    window1.setTitle("Try"); 
    window1.setSize(600, 400); 
    window1.setLayout(new BorderLayout()); 
    window1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    //window.setVisible(true); 

    XYSeries series1 = new XYSeries("graph"); 
    XYSeriesCollection dataset1= new XYSeriesCollection(series1); 

    double[] newArray1= new double[1000]; 
    for (int j=0;j<1000;j++) 
    { 
     newArray[j]=1+10; 
    } 
    JFreeChart chart1=ChartFactory.createXYLineChart("Graph Try", "hi", "bye", dataset1); 
    window1.add(new ChartPanel(chart1),BorderLayout.CENTER); 

    int y=0; 
    int number1=10; 
    for (int i=0;i<10000;i++) 
    { 
     series.add(x,number); 
     x++; 
     number++; 

     window.setVisible(true); 


     series1.add(y,number1); 
     y++; 
     number1++; 
     window1.setVisible(true); 
    } 
}