JavaFX组中的中心图像

时间:2016-03-20 12:54:14

标签: javafx-8

我试图在JavaFX中制作一些数据。我可以使用Polygon类创建这些图形,或者使用Circle类创建这些图形。但我想在它上面添加一个图像。因此,我使用了一个组,其中包含2个元素,图像和ImageView中的图像。但如果我使用这个组,图像不在中间。我想将图像居中。我也希望能够用鼠标拖放它,所以它需要保持在中间。我用圆圈和多边形尝试了它,但在这两种情况下,图像都在右下角。

编辑:我刚才发现你可以使用setX和setY移动图像,但这并不是一种简单的图像居中方式。

这就是我现在所拥有的:

public class Figure extends Group {

public Figure() {
    Circle circle = new Circle(100);
    ImageView imageView = new ImageView();
        circle.setFill(Color.BLUE);
        circle.setStroke(Color.BLACK);
        Image image = new Image("images/blue/bike.png");
        imageView.setImage(image);
        imageView.setFitWidth(100);
        imageView.setPreserveRatio(true);
        imageView.setSmooth(true);
        imageView.setCache(true);
        super.getChildren().addAll(circle, imageView);
}

1 个答案:

答案 0 :(得分:0)

最简单的解决方案是使用StackPane代替Group。如果你让它们重叠,那么可能会产生可点击性问题:其中一个Circle中的一个会被其他人StackPane遮挡。

虽然有点不优雅,但我建议您使用setXsetY