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);
}
}