猿问

使用JFree图表更改系列时的随机错误

使用JFree图表更改系列时的随机错误

我正在制作一个GUI,显示背景计算的结果。但在此之前,我想测试更改数据集。这是我的代码:

 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,“超出界限的索引”-一些图书馆内部数组等等。我不使用DynamicTimeSeriesCollection,因为我需要X轴作为我内部迭代的次数,而不是时间周期,还需要在“一些计算”完成时更新,而不是每隔一段时间更新一次。你能告诉我做错了什么吗?还是有更好的方法来更新/刷新图表?


慕的地8271018
浏览 422回答 2
2回答
随时随地看视频慕课网APP

相关分类

Java
我要回答