Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class JPaintablePanel extends ChartPanel implements Runnable {
- private AlgorithmManager algoManager;
- private static DefaultXYDataset dt = new DefaultXYDataset();
- private static JFreeChart chart = createChart(JPaintablePanel.dt);
- // public DefaultXYDataset dataset = new DefaultXYDataset();
- private DefaultXYDataset dataset = JPaintablePanel.dt;
- private ParametersData data;
- private int iterations, periods;
- private int percent = 10;
- double[][] series;
- public JPaintablePanel() {
- super(JPaintablePanel.chart, false);
- }
- public void setAlgorithmManager(AlgorithmManager man, ParametersData d) {
- this.algoManager = man;
- data = d;
- iterations = (int) data.getNumberOfIterations();
- periods = iterations / percent;
- // System.out.println(periods + ", ite=" + iterations);
- series = new double[2][periods];
- }
- @Override
- public void run() {
- // TODO Auto-generated method stub
- // dataset.addSeries("Series0", createSeries(10));
- for (int i = 0; i < periods; i++) {
- series[0][i] = (double) i;
- series[1][i] = 0;// random.nextInt(100) / 2;//0;
- }
- for (int it = 0; it < 10; it++) {
- series[1][random.nextInt(periods)] = random.nextInt(100) / 2;
- double[][] d = new double[2][periods];
- for (int i = 0; i < periods; i++) {
- d[0][i] = series[0][i];
- d[1][i] = series[1][i];
- }
- // dataset.removeSeries("Series0");
- // dataset.addSeries("Series0", series);
- // try {
- // Thread.sleep(100);
- // } catch (java.lang.InterruptedException ex) {
- // }
- }
- dataset.addSeries("Series0", series);
- // int periodAmount = 0;
- // boolean remove = false;
- // int it = 0;
- // for (int i = 0; i < iterations; i++) {
- // if (i > 0 && remove) {
- // // dataset.removeSeries("Series0");
- // remove = false;
- // }
- // if (i % periods == 0) {
- // periodAmount++;
- // dataset.addSeries("Series" + it, createSeries(it++));
- // // System.out.println("Dizalam!");
- // try {
- // Thread.sleep(0);
- // } catch (java.lang.InterruptedException ex) {
- // }
- // if (periodAmount < periods) {
- // remove = true;
- // }
- // }
- // // if(it == 2) {
- // // System.out.println("i=" + i);
- // // break;
- // // }
- // }
- }
- private static final Random random = new Random();
- private double[][] createSeries(int ind) {
- series[1][ind] = random.nextInt(100) / 2;
- // for (int j = 0; j < periods; j++) {
- // System.out.print(series[1][j] + ", ");
- // }
- // System.out.println(" :::index = " + i);
- double[][] d = new double[2][periods];
- for (int i = 0; i < periods; i++) {
- d[0][i] = series[0][i];
- d[1][i] = series[1][i];
- }
- return d;
- }
- private static JFreeChart createChart(XYDataset dataset) {
- // create the chart...
- JFreeChart chart = ChartFactory.createXYLineChart(null, // chart title
- "Ilość kroków", // domain axis label
- "Odległość", // range axis label
- dataset, // initial series
- PlotOrientation.VERTICAL, // orientation
- true, // include legend
- true, //
- false //
- );
- chart.setBackgroundPaint(Color.white);
- XYPlot plot = (XYPlot) chart.getPlot();
- plot.setBackgroundPaint(new Color(0xffffe0));
- plot.setDomainGridlinesVisible(true); //
- plot.setDomainGridlinePaint(Color.lightGray); //
- plot.setRangeGridlinePaint(Color.lightGray); //
- //
- TickUnitSource ticks = NumberAxis.createIntegerTickUnits();
- NumberAxis domain = (NumberAxis) plot.getDomainAxis();
- domain.setStandardTickUnits(ticks);
- NumberAxis range = (NumberAxis) plot.getRangeAxis();
- range.setStandardTickUnits(ticks);
- //
- XYLineAndShapeRenderer renderer = new XYLineAndShapeRenderer(true, true);
- plot.setRenderer(renderer);
- renderer.setBaseItemLabelPaint(Color.blue);
- renderer.setBaseShapesVisible(true); //
- renderer.setBaseShapesFilled(true); //
- // set the renderer's stroke
- Stroke stroke = new BasicStroke(1.5f, BasicStroke.CAP_ROUND,
- BasicStroke.JOIN_BEVEL); //
- renderer.setBaseOutlineStroke(stroke);
- // renderer.setBasePaint(Color.RED);
- //
- NumberFormat format = NumberFormat.getNumberInstance();
- format.setMaximumFractionDigits(2);
- XYItemLabelGenerator generator = new StandardXYItemLabelGenerator(
- StandardXYItemLabelGenerator.DEFAULT_ITEM_LABEL_FORMAT, format,
- format);
- renderer.setBaseItemLabelGenerator(generator);
- renderer.setBaseItemLabelsVisible(true);
- // XYItemRenderer rende = chart.getXYPlot().getRenderer();
- // rende.setSeriesPaint(0, Color.blue);
- // rende.setSeriesPaint(1, new Color(0xffffe0));
- return chart;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement