我试图在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);
}
答案 0 :(得分:0)
最简单的解决方案是使用StackPane
代替Group
。如果你让它们重叠,那么可能会产生可点击性问题:其中一个Circle
中的一个会被其他人StackPane
遮挡。
虽然有点不优雅,但我建议您使用setX
和setY
。