Как добавить данные в диаграмму JFree XY каждые 5 секунд?


0

Вместо того, чтобы помещать таймер в свой createDataset()метод, вы можете вместо этого создать новый поток из основного метода, который изменяет ваш набор данных JFreeChart каждые 5 секунд.

Например, вы можете сделать это примерно так:

public static void main( String[ ] args ) {
  XYLineChart_AWT chart = new XYLineChart_AWT("Temp",
     "Temperature of some location");
  chart.pack( );          
  RefineryUtilities.centerFrameOnScreen( chart );          
  chart.setVisible( true ); 

  //now make your timer
  int delay = 5000; //milliseconds
  ActionListener timerAction = new ActionListener() {
      public void actionPerformed(ActionEvent evt) {
          //some code here to get and modify your dataset so it can be updated
          // ----
          // ----
          //now apply your new dataset to your JFreeChart
          xylineChart.getXYPlot().setDataset(myNewDataset);
      }
  };
  new Timer(delay, timerAction).start();
}

Не забудьте добавить код для удаления старых записей в вашем наборе данных, чтобы диаграмма оставалась читаемой, и все значения на оси времени оставались на одном и том же расстоянии друг от друга между различными наборами данных, например, убедитесь, что их не более 24 элементов (2 минуты данные), построенные за один раз.

Java, качели, JFreeChart,

java,swing,jfreechart,

0

Ответов: 1


0

Вместо того, чтобы помещать таймер в свой createDataset()метод, вы можете вместо этого создать новый поток из основного метода, который изменяет ваш набор данных JFreeChart каждые 5 секунд.

Например, вы можете сделать это примерно так:

public static void main( String[ ] args ) {
  XYLineChart_AWT chart = new XYLineChart_AWT("Temp",
     "Temperature of some location");
  chart.pack( );          
  RefineryUtilities.centerFrameOnScreen( chart );          
  chart.setVisible( true ); 

  //now make your timer
  int delay = 5000; //milliseconds
  ActionListener timerAction = new ActionListener() {
      public void actionPerformed(ActionEvent evt) {
          //some code here to get and modify your dataset so it can be updated
          // ----
          // ----
          //now apply your new dataset to your JFreeChart
          xylineChart.getXYPlot().setDataset(myNewDataset);
      }
  };
  new Timer(delay, timerAction).start();
}

Не забудьте добавить код для удаления старых записей в вашем наборе данных, чтобы диаграмма оставалась читаемой, и все значения на оси времени оставались на одном и том же расстоянии друг от друга между различными наборами данных, например, убедитесь, что их не более 24 элементов (2 минуты данные), построенные за один раз.

Java, качели, JFreeChart,
Похожие вопросы