0

私は JavaFx の初心者です。FXMl で作成された 2 つの gridPane があります。Javafx で同じことをしたいです。

GridPane を拡張するクラスを作成したいので、クラスを呼び出すと、fxml と同じ結果が得られます

  <GridPane layoutX="138.0" layoutY="72.0">
    <children>
    <Label text="01" GridPane.columnIndex="1" GridPane.rowIndex="0" />

    <Label text="01" GridPane.columnIndex="2" GridPane.rowIndex="0" />

    <Label text="01" GridPane.columnIndex="3" GridPane.rowIndex="0" />

    <Label text="01" GridPane.columnIndex="4" GridPane.rowIndex="0" />

    <Label text="01" GridPane.columnIndex="0" GridPane.rowIndex="0" />

  </children>

  <columnConstraints>
    <ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="25.0" />

    <ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="25.0" />

    <ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="25.0" />

    <ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="25.0" />

    <ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="25.0" />

  </columnConstraints>

  <rowConstraints>

    <RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />

  </rowConstraints>

</GridPane>

<GridPane layoutX="38.0" layoutY="102.0">

  <children>

    <Label prefWidth="74.0" text="Label" GridPane.columnIndex="0" GridPane.rowIndex="0" />

  </children>

  <columnConstraints>

    <ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />

    <ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="25.0" />

    <ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="25.0" />

    <ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="25.0" />

    <ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="25.0" />

    <ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="25.0" />

  </columnConstraints>

  <rowConstraints>

    <RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />

    <RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />

  </rowConstraints>

</GridPane>
4

1 に答える 1

0

これは、GridPane x by y を作成し、それを gridPane という親ペインに追加するために使用したルーチンです (このペインは FXML によって作成されます)。

public GridPane DessineGrille(int x, int y) {
    ((Pane) Main.root.lookup("#grille")).getChildren().clear();
    GridPane gp = new GridPane();
    x += 2;
    ColumnConstraints column = new ColumnConstraints();
    column.setPercentWidth((1.0f/((float) x))*100.0f);
    for (int i = 1; i <= x; i++) {
        gp.getColumnConstraints().add(column);
    }
    y += 2;
    RowConstraints line = new RowConstraints();
    line.setPercentHeight((1.0f/((float) y))*100.0f);
    for (int i = 1; i <= y; i++) {
        gp.getRowConstraints().add(line);
    }
    gp.setGridLinesVisible(true);
    gp.setHgap(10);
    gp.setVgap(10);
    Light.Distant light = new Light.Distant();
    light.setAzimuth(-135.0);

    Lighting lighting = new Lighting();
    lighting.setLight(light);
    lighting.setSurfaceScale(5.0);
    gp.setEffect(lighting);
    gp.setMinSize(((Pane) Main.root.lookup("#grille")).getWidth(), ((Pane) Main.root.lookup("#grille")).getHeight());
    ((Pane) Main.root.lookup("#grille")).getChildren().add(gp);
    return gp;

}

あなたを助けるために、フランス語で「dessine」は描画と「グリル」メニューグリッドを意味します(翻訳するだけでエラーを導入したくありません).

それは役に立ちますか?

于 2014-04-30T09:32:46.023 に答える