【发布时间】:2015-03-04 11:40:30
【问题描述】:
我想在饼图上移动鼠标指针时显示工具提示。我测试了这段代码:
private ObservableList<Data> pieChartdData = FXCollections.observableArrayList();
private PieChart chart = new PieChart(pieChartdData);
public void pieChart(List<FSPartitions> obj)
{
for (FSPartitions obj1 : obj)
{
String fsName = obj1.getFSName();
double usedSize = obj1.getUsedSize();
for (Data d : pieChartdData)
{
if (d.getName().equals(fsName))
{
d.setPieValue(usedSize);
return;
}
}
}
for (FSPartitions obj1 : obj)
{
String fsName = obj1.getFSName();
double usedSize = obj1.getUsedSize();
pieChartdData.add(new Data(fsName, usedSize));
}
Platform.runLater(() ->
{
final Label captioln = new Label("");
captioln.setTextFill(Color.DARKORANGE);
captioln.setStyle("-fx-font: 24 arial;");
chart.getData().stream().forEach((data) ->
{
data.getNode().addEventHandler(MouseEvent.MOUSE_ENTERED,
new EventHandler<MouseEvent>()
{
@Override
public void handle(MouseEvent e)
{
captioln.setTranslateX(e.getSceneX());
captioln.setTranslateY(e.getSceneY());
captioln.setText(String.valueOf(data.getPieValue()) + "%");
}
});
});
});
chart.setData(pieChartdData);
}
我甚至添加了 Platform.runLater(() 来测试这是 JavaFX 8u40 中的错误,但是当我将鼠标移到 PieChart 上时仍然没有工具提示。此代码在 JavaFX 任务中执行,所以可能存在已知问题. 你有什么想法吗?
【问题讨论】: