Construction de XYSeries sans passer par add ?
Bonjour,
Je travaille sur la visualisation de courbes dans le temps (en résumé y=f(t)) et j'utilise la bibliothèque jfreechart qui me semble tout-à fait adéquate. Toutefois il semble que pour ajouter des valeurs à une XYSeries il n'y ait pas d'autre issue que d'y ajouter les valeurs (en t et en y) une par une avec la méthode add().
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
|
package temp;
import java.awt.BasicStroke;
import java.awt.Color;
import java.awt.Font;
import javax.swing.BorderFactory;
import javax.swing.JFrame;
import javax.swing.SwingUtilities;
import java.util.List;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.plot.XYPlot;
import org.jfree.chart.renderer.xy.StandardXYItemRenderer;
import org.jfree.data.xy.XYSeries;
import org.jfree.data.xy.XYSeriesCollection;
public class recorder extends JFrame {
int number=0;
public recorder(int number, List time, List values) {
this.number=number;
XYSeries series = new XYSeries(String.valueOf(number));
// ce sont les 4 lignes suivantes qui ralentissent tout
int n_value=time.size();
for (int i=0;i<n_value;i++){
series.add((double)time.get(i),(double)values.get(i));
}
// et que je voudrais remplacer par une "simple" affectation
XYSeriesCollection dataset = new XYSeriesCollection(series);
JFreeChart chart = ChartFactory.createXYLineChart("value","t","y",dataset,PlotOrientation.VERTICAL,true,true,false);
XYPlot plot = chart.getXYPlot();
StandardXYItemRenderer renderer = new StandardXYItemRenderer();
renderer.setSeriesPaint(0, Color.BLACK);
plot.setRenderer(renderer);
plot.setBackgroundPaint(Color.white);
plot.setRangeGridlinesVisible(false);
plot.setDomainGridlinesVisible(false);
ChartPanel chartPanel = new ChartPanel(chart);
chartPanel.setPreferredSize(new java.awt.Dimension(600, 400));
chartPanel.setBackground(Color.white);
setContentPane(chartPanel);
pack();
setTitle("recorder"+String.valueOf(number));
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
} |
Est-ce que quelqu'un connait une méthode permettant de passer directement le contenu d'une Liste, ArrayList ou tableau à un XYSeries s'il vous plait ? :) Sinon si quelqu'un connait une autre librairie java encore plus simple et aussi rapide je suis preneur.
Bien à Vous !