Как добавить данные в диаграмму 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,
Похожие вопросы
Яндекс.Метрика