如何在Javafx中将文本插入到形状中?

时间:2017-10-29 05:56:02

标签: java javafx

使用JavaFX我创建了一个简单的矩形对象,我希望能够在该矩形内放置一个文本对象,并使其在矩形内自动保持对齐。我必须绘制矩形的代码是:

public static Scene createScene() {
        Group root = new Group();
        Scene scene = new Scene(root, Color.ALICEBLUE);

        Rectangle rectangle_red = new Rectangle();

        rectangle_red.setFill(Color.TRANSPARENT);
        rectangle_red.setStroke(Color.BLACK);
        rectangle_red.setX(50);
        rectangle_red.setY(50);
        rectangle_red.setWidth(200);
        rectangle_red.setHeight(100);
        rectangle_red.setCursor(Cursor.HAND);
        rectangle_red.setOnMousePressed(circleOnMousePressedEventHandler);
        rectangle_red.setOnMouseDragged(circleOnMouseDraggedEventHandler);        

        root.getChildren().add(rectangle_red);    

        return scene;
    }

我附加到矩形的处理程序允许我将矩形拖动到窗口中的任何位置。如何在矩形中放置文本,使其在屏幕上拖动形状时保持对齐?

1 个答案:

答案 0 :(得分:5)

如上一个here示例所示,Animation Basics示例TimelineEvents通过向{{3}添加Circle和一些Text来实现此目的默认情况下,它的子项居中。然后,堆栈可以作为一个整体在封闭的Group内移动。

final Circle circle = new Circle(…);
final Text text = new Text (…);
final StackPane stack = new StackPane();
stack.getChildren().addAll(circle, text);
…
stack.setLayoutX(30);
stack.setLayoutY(30);

StackPane