【问题标题】:JFreeChart SlidingCategoryDataset chart update only axisJFreeChart SlidingCategoryDataset 图表仅更新轴
【发布时间】:2012-09-12 13:15:08
【问题描述】:

我已经使用 csv 文件中的数据实现了 Box and Whisker Chart
它有很多类别,并且在屏幕上显示得非常紧凑。
因此,我决定使用带有 JSlider 的 SlidingCategoryDataset,如 here 所述。

我认为我的新类使用来自 SlidingCategoryDataset 的扩展 DefaultBoxAndWhiskerDataset 的代码工作正常,因为 x 轴上的类别标签已正确更新。但是图表中的条形保持不变,无论我做什么都不会随时更新。更令人困惑的是,栏的工具提示确实会正确更新。
当我使用滑块到达数据集的末尾并显示例如一次有 10 个类别,例如仅剩 9 个,图表正确显示 9 个条,但不是隐藏第一个条,而是隐藏最后一个条(轴和工具提示已正确更新)。

我在 google 上寻找解决方案,但没有找到我的问题的答案。所以我自己尝试了所有可用的更新和重绘方法,因为我认为这一定是一个 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();
}

我现在有点绝望。有人可以帮我吗?或者有人知道另一种显示许多类别的方法吗?
非常感谢。

【问题讨论】:

    标签: jfreechart updates axis-labels


    【解决方案1】:

    paging approach 可以正常工作,并且可以很好地扩展。所示示例使用按钮,但微调器或滑块也可以。

    或者,您可以将您的实现与SlidingXYDataset、引用here 和讨论here 进行比较。

    【讨论】:

    • 感谢您的回答。我按照您在另一篇文章中提到的方式进行了尝试,并在每次滑块更改时创建一个新数据集。终于成功了!
    • 优秀;现在它正在工作,您可能会看到是否需要 cache 的数据集。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-29
    • 2022-07-20
    • 2011-11-20
    • 1970-01-01
    相关资源
    最近更新 更多