Java Fx自定义图像作为散点图数据点

时间:2017-01-06 17:07:55

标签: java javafx

我有一个表示基本上是图像的输入流。我想要一个系列由这个图像代表。现在我有类似的东西:

public void update(ComputationState finalState) {
    getData().clear();
    XYChart.Series<Number, Number> series = new XYChart.Series<>();
    for (PizzaDeliverer entry : finalState.getPizzas()) {
        XYChart.Data<Number, Number> dataEntry = new XYChart.Data<>(entry.getCurrentPosition().getX(), entry.getCurrentPosition().getY());
        series.getData().add(dataEntry);
    }
    series.setName(null);
    getData().add(series);
}

我扩展了ScatterChart<Number,Number>类以满足我的需求(必须更新)。

我希望数据条目能够表示披萨图像。我怎样才能做到这一点?

2 个答案:

答案 0 :(得分:1)

public void update(ComputationState finalState) {
    getData().clear();
    XYChart.Series<Number, Number> series = new XYChart.Series<>();

    final int imgWidth = 20 ; 
    final int imgHeight = 20 ; 
    final Image img = new Image(getClass().getResource("pizza.png"), imgWidth, imgHeight, true, true, true);

    for (PizzaDeliverer entry : finalState.getPizzas()) {
        XYChart.Data<Number, Number> dataEntry = new XYChart.Data<>(entry.getCurrentPosition().getX(), entry.getCurrentPosition().getY());
        dataEntry.setNode(new ImageView(img));
        series.getData().add(dataEntry);
    }
    series.setName(null);
    getData().add(series);
}

答案 1 :(得分:0)

我不确定图像,但我认为可以使用CSS完成。尝试阅读更多here. 具体来说,尝试使用:

.chart-symbol {
    -fx-image: url("image.png");
}