我用csv文件中的数据实现了一个Box and Whisker Chart
它有很多类别,在屏幕上显示得非常紧凑
所以我决定使用SlidingCategoryDataset和这里提到的JSlider。
我认为我的新类使用SlidingCategoryDataset中扩展DefaultBoxAndWhiskerDataset的代码运行良好,因为x轴上的类别标签更新正确。但是图表中的条形图保持不变,无论我做什么都不会随时更新。更令人困惑的是,条形图的工具提示确实正确更新了
当我用滑块到达数据集的末尾并同时显示例如10个类别,并且例如只剩下9个时,图表正确地显示了9个条形图,但它没有隐藏第一个条形图而是隐藏了最后一个条形图(轴和工具提示正确更新)。
我在谷歌上寻找解决方案,但没有找到解决问题的答案。所以我使用所有可用的更新和重新绘制方法自己尝试了一下,因为我认为这一定是一个GUI问题,但没有成功。你可以在这里看到我的更新方法:
private void sliderChanged(){
int val = slider.getValue();
sData.setFirstCategoryIndex(val);// my sliding dataset
chart = ChartDrawer.draw(sData); // to draw chart again should be unnecessary
chart.fireChartChanged();
chartPanel.setChart(chart);
chartPanel.revalidate();
chartPanel.repaint();
chartPanel.updateUI();
repaint();
}
我现在有点绝望了。有人能帮帮我吗?或者有人知道另一种显示多个类别的方法,那就是工作吗
非常感谢。
分页方法有效,而且扩展性很好。所示的示例使用按钮,但是微调器或滑块也可以。
或者,您可以将您的实现与此处引用和讨论的SlidingXYDataset
进行比较。