Я создаю графический интерфейс, который отображает результат фоновых вычислений. Но до этого я хотел протестировать изменение набора данных. Вот мой код:
 DefaultXYDataset dataset = new DefaultXYDataset();
@Override
        public void run() {
                // TODO Auto-generated method stub
                for (int i = 0; i < periods; i++) {
                        series[0][i] = (double) i;
                        series[1][i] = 0;
                }
                dataset.addSeries("Series0", series);
                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) {
//                      }
                }
Как вы можете видеть, я хочу изменить точки на графике (каждый раз, когда он заканчивает "сложные вычисления" ) - это изменение в потоке, вызванном мной в другом классе. Моя проблема в том, что вся эта концепция не работает. Он выдает "индекс серии за пределы" -IllegalArgumentException, "index out of bounds" - некоторого внутреннего библиотекаря библиотеки и т.д. Я не использую DynamicTimeSeriesCollection, потому что мне нужна ось X, чтобы быть числом моих внутренних итераций, а не временем период, а также обновлять, когда "некоторые вычисления" завершаются не каждый промежуток времени. Можете ли вы сказать мне, что я делаю неправильно? Или есть лучший способ обновить/обновить график?

