我试图复制过去曾经手工制作的东西,但我非常希望将其转移到JavaFX Charts,所以我知道自己需要更长时间地维护它。我可以根据鼠标指针的位置相对容易地从图表中获取XAxis和YAxis值。但我现在需要知道系列值(我可能有很多)是什么。然后我打算在一个漂浮在图表上的框中显示它,如我手工制作的图表所示。
我发布了一个示例图片,但遗憾的是我的声誉目前太低了。
我知道我可以通过在树形图中手动记录非常多的值添加到图表中然后在鼠标移动时轮询它来确定值...但我很好奇是否有' sa更简单的方法,不要求我从现有的非JavaFX图表重复代码。
我无法在XYChart.Series或Observable List中找到任何可以简化此过程的内容,所以我只是在自己动手之前尝试进行健全检查。
答案 0 :(得分:0)
您可以这样做:
但你的X必须是数字值
private Data<X, Y> getNearestDataForXValue(X xValue, Series<X, Y> series) {
Data<X, Y> nearsetData = null;
double distance = Double.MAX_VALUE;
for (Data<X, Y> data : series.getData()) {
double xData = data.getXValue().doubleValue();
double dataDistance = Math.abs(xValue.doubleValue() - xData);
if (dataDistance < distance) {
distance = dataDistance;
nearsetData = data;
}
}
return nearsetData;
}