gpt4 book ai didi

java - 在 JavaFX 中显示字符串/标签

转载 作者:行者123 更新时间:2023-12-02 03:55:24 25 4
gpt4 key购买 nike

我需要帮助弄清楚如何在程序中显示文本,以便它可以在我创建的多边形形状的中间显示“停止”。我想做的是创建一个 parking 标志。我已经负责创建和显示该停止标志,所以现在我只需要在 t 中显示“停止”

package application;
public class Main extends Application {
@Override
public void start(Stage primaryStage) {
Pane pane = new Pane();
Polygon polygon = new Polygon();
pane.getChildren().add(polygon);
polygon.setFill(javafx.scene.paint.Color.RED); //sets the color of polygon
ObservableList<Double> list = polygon.getPoints();

//create a label to display in the middle of the "stop sign" polygon shape
//This is what I need most help on
Label sign = new Label("Stop");
sign.setAlignment(Pos.CENTER);
System.out.print(sign);

final double WIDTH = 200, HEIGHT = 200;
double centerX = WIDTH / 2, centerY = HEIGHT / 2;
double radius = Math.min(WIDTH, HEIGHT) * 0.4;

// Add points to the polygon list
for (int i = 0; i < 6; i++){
list.add(centerX + radius * Math.cos(2 * i * Math.PI / 6));
list.add(centerY - radius * Math.sin(2 * i * Math.PI / 6));
}

// Create a scene and place it in the stage
Scene scene = new Scene(pane, WIDTH, HEIGHT);
primaryStage.setTitle("ShowPolygon"); //Set the stage title
primaryStage.setScene(scene); //Place the scene in the stage
primaryStage.show(); //Display the stage



}

public static void main(String[] args) {
launch(args);
}

}

最佳答案

Pane 替换为 StackPane 并向其添加 sign(在多边形后面):

public void start(Stage primaryStage) {
StackPane pane = new StackPane();
Polygon polygon = new Polygon();
polygon.setFill(javafx.scene.paint.Color.RED); //sets the color of polygon
ObservableList<Double> list = polygon.getPoints();

//create a label to display in the middle of the "stop sign" polygon shape
//This is what I need most help on
Label sign = new Label("STOP");
//sign.setStyle("-fx-text-fill: white; -fx-font-size: 3em");
sign.setAlignment(Pos.CENTER);
System.out.print(sign);


pane.getChildren().add(polygon);
pane.getChildren().add(sign);

final double WIDTH = 200, HEIGHT = 200;
double centerX = WIDTH / 2, centerY = HEIGHT / 2;
double radius = Math.min(WIDTH, HEIGHT) * 0.4;

// Add points to the polygon list
for (int i = 0; i < 6; i++) {
list.add(centerX + radius * Math.cos(2 * i * Math.PI / 6));
list.add(centerY - radius * Math.sin(2 * i * Math.PI / 6));
}

// Create a scene and place it in the stage
Scene scene = new Scene(pane, WIDTH, HEIGHT);
primaryStage.setTitle("ShowPolygon"); //Set the stage title
primaryStage.setScene(scene); //Place the scene in the stage
primaryStage.show(); //Display the stage


}

有关 StackPane 的 Javadoc:

StackPane lays out its children in a back-to-front stack. The z-order of the children is defined by the order of the children list with the 0th child being the bottom and last child on top. If a border and/or padding have been set, the children will be layed out within those insets.

The stackpane will attempt to resize each child to fill its content area. If the child could not be sized to fill the stackpane (either because it was not resizable or its max size prevented it) then it will be aligned within the area using the alignment property, which defaults to Pos.CENTER.

关于java - 在 JavaFX 中显示字符串/标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35517624/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com