如何在折线内添加文本?

问题描述 投票:0回答:1

我想知道是否可以在JavaFX Polyline组件内添加文本,该文本在进行诸如旋转之类的转换时将遵循该行。我对任何想法都很开放:)

enter image description here

java javafx text polyline
1个回答
0
投票

javafx.scene.shape.Shape不是父级。它不能包含子代(文本)。因此,如果您的问题是在一起处理形状和文本以进行一些转换(转换,旋转等),我认为最简单的方法是将两者都包装在Pane中(最好是StackPane),然后在Pane上进行所有转换而不是单独使用“形状和文字”。

下面是我的意思的快速示例演示:

import javafx.application.Application;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.layout.StackPane;
import javafx.scene.shape.Polyline;
import javafx.scene.text.Text;
import javafx.stage.Stage;

public class PolylineExample extends Application {
    @Override
    public void start(Stage stage) {
        Polyline polyline = new Polyline();
        polyline.getPoints().addAll(new Double[]{
                200.0, 50.0,
                400.0, 50.0,
                450.0, 150.0,
                400.0, 250.0,
                200.0, 250.0,
                150.0, 150.0,
        });

        Text text = new Text("Some Text");
        StackPane container = new StackPane(polyline, text);

        // DOING ALL TRANSFORMATIONS ON CONTAINER
        container.setTranslateX(20);
        container.setTranslateY(50);
        container.setRotate(30);

        StackPane root = new StackPane(new Group(container));
        Scene scene = new Scene(root, 600, 300);
        stage.setTitle("Drawing a Polyline");
        stage.setScene(scene);
        stage.show();
    }

    public static void main(String args[]) {
        launch(args);
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.