作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试获取 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/
我正在尝试获取 LineChart 上一个点的 x,y这样我就可以添加 Line到它上面。因此,我尝试通过执行以下操作来获取 x 值 9: Group root = new Group(); Numb
我是一名优秀的程序员,十分优秀!