gpt4 book ai didi

java - NumberAxis.getDisplayPosition(...) 返回 0

转载 作者:行者123 更新时间:2023-11-30 05:52:06 25 4
gpt4 key购买 nike

我正在尝试获取 LineChart<Number, Number> 上一个点的 x,y这样我就可以添加 Line到它上面。因此,我尝试通过执行以下操作来获取 x 值 9:

Group root = new Group(); 
NumberAxis xAxis = new NumberAxis();
xAxis.setAutoRanging(false);
xAxis.setLowerBound(0);
xAxis.setUpperBound(9);
LineChart<Number, Number> lineChart = new LineChart<Number, Number>(xAxis, yAxis);
System.out.println(xAxis.getDisplayPosition(9)); // 0
root.getChildren().add(lineChart);
Scene scene = new Scene(root, 800, 800);
stage.setScene(scene);
stage.show();

在互联网上查找后,我发现了一个假设的解决方案

Node chartPlotArea = lineChart.lookup(".chart-plot-background");
double chartZeroX = chartPlotArea.getLayoutX();
System.out.println(xAxis.getDisplayPosition(9) + chartZeroX);

最终输出 0 ,为什么会出现这种情况?如何获取 x,y 的显示位置,以便将其传递到 Line.setStartX(...)/Line.setStartY(...)

最佳答案

如果它不重要 - 您不需要在此处以编程方式生成布局 channel ,您可以让 javaFX 计算它并在显示舞台后立即更新。把你的逻辑移到 stage.show(); 之后

你将得到正确的输出

  stage.show();

System.out.println(xAxis.getDisplayPosition(9));

我得到:443.0

关于java - NumberAxis.getDisplayPosition(...) 返回 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53733769/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com