Charts JAVAFX-带滑块的控制烛台图表

Charts JAVAFX-带滑块的控制烛台图表,charts,javafx,slider,candlestick-chart,Charts,Javafx,Slider,Candlestick Chart,我试图使用众所周知的JAVA-FX烛台图表,但遇到了一些问题。 每当我试图用一个附在图表上的滑块重新调整图表的大小时,由于某种原因,蜡烛开始变大变厚或变小变薄 my sliderX是一个包含数据信息的滑块,将“最小值”设置为“最小日期1”,将“最大值”设置为“最大日期” 我有以下代码作为滑块的侦听器: sliderX.valueProperty().addListener(new ChangeListener<Number>() { public void c

我试图使用众所周知的JAVA-FX烛台图表,但遇到了一些问题。 每当我试图用一个附在图表上的滑块重新调整图表的大小时,由于某种原因,蜡烛开始变大变厚或变小变薄

my sliderX是一个包含数据信息的滑块,将“最小值”设置为“最小日期1”,将“最大值”设置为“最大日期”

我有以下代码作为滑块的侦听器:

    sliderX.valueProperty().addListener(new ChangeListener<Number>() {
        public void changed(ObservableValue<? extends Number> ov,
            Number oldValue, Number newValue) {
                xAxis.setLowerBound(newValue.doubleValue());
                xAxis.setUpperBound(newValue.doubleValue() + 100);
                xAxis.setTickMarkVisible(true);
                chart.updateAxisRange();
        }
其想法是每次向前看100天,并以+100的间隔在数据中移动。 因此,在开始时,图表将显示0-100个价格,点击左侧的滑块,他将显示1-101个价格,以此类推

我显然遗漏了一些东西,但还没有看到关于这个问题的任何正常解释,也许你可以告诉我一个可以阅读和学习的教程/文档。 不是寻找一个神奇的解决方案,而是一个很好的解决方案,但更多的是一个了解我在这方面的误解的地方


谢谢。

在过去的几天里,我一直在研究一个类似的问题,我在下面的链接中找到了一个可能更好地帮助您调整代码的解决方案:

我认为问题在于,您在下限和上限上都使用了新值,这似乎是为了调整轴的可视区域,而不是左右平移/滚动

您可以尝试这样实现它:

sliderX.valueProperty().addListener(new ChangeListener<Number>() {
    public void changed(ObservableValue<? extends Number> ov, Number oldValue, Number newValue) {

            Delta = newValue.doubleValue() - oldValue.doubleValue(); 

            xAxis.setLowerBound(xAxis.getLowerBound() + Delta);
            xAxis.setUpperBound(xAxis.getUpperBound() + Delta);
            xAxis.setTickMarkVisible(true);
            chart.updateAxisRange();
    }
}
我在JavaFX8烛台图实现中成功地使用了类似版本的代码,使用拖动事件而不是滑块进行平移/滚动,但数学应该保持不变