如何在JavaFX中向形状插入文本?

5

我使用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个回答

10

如上例所示(此处)动画基础示例TimelineEvents通过向StackPane添加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);

image


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接