JavaFX colspan不适用于GridPane中的文本

Man*_*anu 2 javafx

我正在尝试居中跨越GridPane的两列的标签。但是,它似乎不起作用。

应用类别

public class GUIMainFXML extends Application {
@Override
public void start(Stage primaryStage) {
    try {

        GridPane p = (GridPane) FXMLLoader.load(getClass().getResource(
                "FirstGUIexample.fxml"));

        Scene scene = new Scene(p);

        scene.getStylesheets().add(
                getClass().getResource("application.css").toExternalForm());

        primaryStage.setTitle("Welcome (FXML CODE)");
        primaryStage.setScene(scene);
        primaryStage.show();
    } catch (Exception e) {
        e.printStackTrace();
    }
}

public static void main(String[] args) {
    launch(args);
}}
Run Code Online (Sandbox Code Playgroud)

fxml文件:

<GridPane xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1"
hgap="5" vgap="5">
<padding>
    <Insets top="10" right="10" bottom="10" left="10" />
</padding>
<children>
    <Text text="Welcome" GridPane.columnSpan="2" GridPane.halignment="CENTER" 
        GridPane.rowIndex="0" />
    <Button text="Press me" GridPane.halignment="CENTER"
        GridPane.rowIndex="1" GridPane.columnSpan="2" />

    <CheckBox text="Don't touch me" GridPane.rowIndex="2"
        GridPane.halignment="CENTER" GridPane.columnSpan="2" />

    <Label text="Type me: " GridPane.halignment="CENTER"
        GridPane.columnIndex="1" GridPane.rowIndex="3" />

    <TextField GridPane.rowIndex="3" GridPane.columnIndex="2"
        GridPane.halignment="CENTER" />
</children>
</GridPane>
Run Code Online (Sandbox Code Playgroud)

application.css

Text {
    -fx-font-size: 15pt;
    -fx-font-family: Tahoma;
    -fx-font-weight: bold;
}
Run Code Online (Sandbox Code Playgroud)

我想在css或fxml中设置它,我只是在测试。

Ita*_*iha 5

您尚未提供要与居中对齐的columnIndexfor TextButton

<Text text="Welcome" GridPane.columnSpan="2" GridPane.halignment="CENTER" 
    GridPane.columnIndex="1" GridPane.rowIndex="0" id="argh" />
<Button text="Press me" GridPane.halignment="CENTER" GridPane.columnIndex="1"
    GridPane.rowIndex="1" GridPane.columnSpan="2"  />
Run Code Online (Sandbox Code Playgroud)