无法使用javaFX对齐文本

时间:2016-07-21 22:08:02

标签: java css text javafx components

我今天几乎没有开始学习javaFX,我对文本节点感到困惑。我制作的文字不会在中心对齐。我尝试使用Pane,GridPane,现在是VBox。这与它有什么关系吗? -fx-text-alignment: center;但这也不起作用。我真的很陌生。谢谢任何人的帮助!这是我的代码:

        package dev.angarc.game;

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.layout.VBox;
import javafx.scene.text.Font;
import javafx.scene.text.FontPosture;
import javafx.scene.text.FontWeight;
import javafx.scene.text.Text;
import javafx.scene.text.TextAlignment;
import javafx.stage.Stage;

public class Game extends Application{

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

    @Override
    public void start(Stage stage){

        VBox vbox = new VBox();

        // Component stuff

        Text text = new Text("This Text Wont Align To The Center!");
        text.setFont(Font.font("Arial", FontWeight.NORMAL, FontPosture.REGULAR, 20));
        text.setTextAlignment(TextAlignment.CENTER);

        // adding to the pane
        vbox.getChildren().add(text);

        // Stuff to set up the window.
                stage.setScene(new Scene((vbox), 640, 430));
                stage.setTitle("Text Game");
                stage.setResizable(false);
                stage.show();

    }

}

1 个答案:

答案 0 :(得分:1)

您想告诉您的CONTAINER要使用哪种对齐方式。

您可以使用窗格的setAlignment()方法管理节点和窗格的对齐方式。对齐常量在javafx.geometry包中的枚举类型中可用。

HBox hbox= new HBox();
hbox.setAlignment(Pos.CENTER);//The overall alignment of children within the hbox's width and height.

如果您想使用FXML

<VBox alignment="CENTER" prefHeight="200.0" prefWidth="100.0" BorderPane.alignment="CENTER">
         <children>
            <Text strokeType="OUTSIDE" strokeWidth="0.0" text="Text" />
         </children>
      </VBox>