Boa tarde meu caros,
estou com um probleminha, tenho um código que cria um gráfico de linha, e outra que lê um arquivo txt.
Abaixo o código do gráfico:
package xyseries;
/*
*
* @author eduardoesn
*/
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.axis.NumberAxis;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.plot.XYPlot;
import org.jfree.data.xy.XYSeries;
import org.jfree.data.xy.XYSeriesCollection;
import org.jfree.ui.ApplicationFrame;
import org.jfree.ui.RefineryUtilities;
import lertxt.LerTxt;
public class XYSeriesDemo extends ApplicationFrame {
public XYSeriesDemo(final String title) {
super(title);
final XYSeries series = new XYSeries ("Flat Data");
series.add(3.0, 110.0);
series.add(2.5, 90.0);
series.add(5.0, 105.0);
series.add(8.7, 150.0);
series.add(13.9,101.0);
series.add(15.7, 100.0);
final XYSeriesCollection data = new XYSeriesCollection(series);
final JFreeChart chart = ChartFactory.createXYLineChart("XY Series Demo", "X", "Y",
data,PlotOrientation.VERTICAL , true,true, false);
final ChartPanel chartPanel = new ChartPanel(chart);
chartPanel.setPreferredSize(new java.awt.Dimension (500, 270));
setContentPane(chartPanel);
}
/**
* @param args the command line arguments
*/
public static void main (final String[] args){
final XYSeriesDemo demo = new XYSeriesDemo ("XY Series Demo");
demo.pack();
RefineryUtilities.centerFrameOnScreen(demo);
demo.setVisible(true);
}
}
mas no lugar das series.add… eu gostaria de colocar os valores lidos em um txt que tem o seguinte código e aparece da seguinte forma:
public class LerTxt {
public static void main (String[] args) throws IOException{
//Lendo e imprimindo linhas de um arquivo-texto para a console:
FileReader reader = new FileReader("log.txt");
BufferedReader br = new BufferedReader(reader);
String linha;
//int linhasLidas = 0;
while ((linha = br.readLine())!= null ){
//System.out.println(linha);
String[] items = linha.split(",");
if(items.length > 1 && items[0].equals("104"))
for (int i = 1; i < 5 && i < items.length; i++)
System.out.println(items[i]);
System.out.println();
}
}
}
2009
63
1330
3.123
2009
63
1340
3.836
2009
63
1350
3.458
2009
63
1400
3.012
2009
63
1410
3.286
onde os três primeiros estarão no eixo x e o último número estará no eixo y, formando assim pares ordenados (x, y).
Alguém poderia me ajudar?
Desde já agradeço.