dynamicdatademo2.java

来自「Jfreechart 源码例子 是和jfreechart developmen」· Java 代码 · 共 146 行

JAVA
146
字号
package demo;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.PrintStream;
import javax.swing.JButton;
import javax.swing.JPanel;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.axis.NumberAxis;
import org.jfree.chart.axis.ValueAxis;
import org.jfree.chart.plot.XYPlot;
import org.jfree.chart.renderer.xy.DefaultXYItemRenderer;
import org.jfree.data.time.Millisecond;
import org.jfree.data.time.TimeSeries;
import org.jfree.data.time.TimeSeriesCollection;
import org.jfree.ui.ApplicationFrame;
import org.jfree.ui.RefineryUtilities;

public class DynamicDataDemo2 extends ApplicationFrame
{
  static Class class$org$jfree$data$time$Millisecond;

  public DynamicDataDemo2(String paramString)
  {
    super(paramString);
    setContentPane(createDemoPanel());
  }

  public static JPanel createDemoPanel()
  {
    return new MyDemoPanel();
  }

  public static void main(String[] paramArrayOfString)
  {
    DynamicDataDemo2 localDynamicDataDemo2 = new DynamicDataDemo2("JFreeChart: DynamicDataDemo2.java");
    localDynamicDataDemo2.pack();
    RefineryUtilities.centerFrameOnScreen(localDynamicDataDemo2);
    localDynamicDataDemo2.setVisible(true);
  }

  static Class class$(String paramString)
  {
    try
    {
      return Class.forName(paramString);
    }
    catch (ClassNotFoundException localClassNotFoundException)
    {
      throw new NoClassDefFoundError(localClassNotFoundException.getMessage());
    }
  }

  static class MyDemoPanel extends DemoPanel
  implements ActionListener
  {
    private TimeSeries series1;
    private TimeSeries series2;
    private double lastValue1 = 100.0D;
    private double lastValue2 = 500.0D;

    public MyDemoPanel()
    {
      super(new BorderLayout());
      this.series1 = new TimeSeries("Random 1", DynamicDataDemo2.class$org$jfree$data$time$Millisecond);
      this.series2 = new TimeSeries("Random 2", DynamicDataDemo2.class$org$jfree$data$time$Millisecond);
      TimeSeriesCollection localTimeSeriesCollection1 = new TimeSeriesCollection(this.series1);
      TimeSeriesCollection localTimeSeriesCollection2 = new TimeSeriesCollection(this.series2);
      JFreeChart localJFreeChart = ChartFactory.createTimeSeriesChart("Dynamic Data Demo 2", "Time", "Value", localTimeSeriesCollection1, true, true, false);
      addChart(localJFreeChart);
      XYPlot localXYPlot = (XYPlot)localJFreeChart.getPlot();
      ValueAxis localValueAxis = localXYPlot.getDomainAxis();
      localValueAxis.setAutoRange(true);
      localValueAxis.setFixedAutoRange(10000.0D);
      localXYPlot.setDataset(1, localTimeSeriesCollection2);
      NumberAxis localNumberAxis = new NumberAxis("Range Axis 2");
      localNumberAxis.setAutoRangeIncludesZero(false);
      localXYPlot.setRenderer(1, new DefaultXYItemRenderer());
      localXYPlot.setRangeAxis(1, localNumberAxis);
      localXYPlot.mapDatasetToRangeAxis(1, 1);
      ChartUtilities.applyCurrentTheme(localJFreeChart);
      ChartPanel localChartPanel = new ChartPanel(localJFreeChart);
      add(localChartPanel);
      JButton localJButton1 = new JButton("Add To Series 1");
      localJButton1.setActionCommand("ADD_DATA_1");
      localJButton1.addActionListener(this);
      JButton localJButton2 = new JButton("Add To Series 2");
      localJButton2.setActionCommand("ADD_DATA_2");
      localJButton2.addActionListener(this);
      JButton localJButton3 = new JButton("Add To Both");
      localJButton3.setActionCommand("ADD_BOTH");
      localJButton3.addActionListener(this);
      JPanel localJPanel = new JPanel(new FlowLayout());
      localJPanel.setBackground(Color.white);
      localJPanel.add(localJButton1);
      localJPanel.add(localJButton2);
      localJPanel.add(localJButton3);
      add(localJPanel, "South");
      localChartPanel.setPreferredSize(new Dimension(500, 270));
    }

    public void actionPerformed(ActionEvent paramActionEvent)
    {
      double d;
      Millisecond localMillisecond;
      int i = 0;
      int j = 0;
      if (paramActionEvent.getActionCommand().equals("ADD_DATA_1"))
      {
        i = 1;
      }
      else if (paramActionEvent.getActionCommand().equals("ADD_DATA_2"))
      {
        j = 1;
      }
      else if (paramActionEvent.getActionCommand().equals("ADD_BOTH"))
      {
        i = 1;
        j = 1;
      }
      if (i != 0)
      {
        d = 0.90000000000000002D + 0.20000000000000001D * Math.random();
        this.lastValue1 *= d;
        localMillisecond = new Millisecond();
        System.out.println("Now = " + localMillisecond.toString());
        this.series1.add(new Millisecond(), this.lastValue1);
      }
      if (j != 0)
      {
        d = 0.90000000000000002D + 0.20000000000000001D * Math.random();
        this.lastValue2 *= d;
        localMillisecond = new Millisecond();
        System.out.println("Now = " + localMillisecond.toString());
        this.series2.add(new Millisecond(), this.lastValue2);
      }
    }
  }
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?