Javafx Label Höhe=Breite

Jose05

Aktives Mitglied
Hallo,
ich möchte das Spiel 2048 programmieren. Die grundlegende Oberfläche ist bereits fertig. Jedoch sind die Labels, die 16 Felder nicht quadratisch. Könnte mir jemand helfen. Ich arbeite mit Javafx FXml. Hier die Oberfläche(erstellt mit SceneBuilder):
XML:
<?xml version="1.0" encoding="UTF-8"?>

<?import javafx.scene.control.Label?>
<?import javafx.scene.layout.ColumnConstraints?>
<?import javafx.scene.layout.GridPane?>
<?import javafx.scene.layout.RowConstraints?>

<GridPane alignment="CENTER" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" xmlns:fx="http://javafx.com/fxml/1" xmlns="http://javafx.com/javafx/17">
  <columnConstraints>
      <ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
    <ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
    <ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
      <ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
  </columnConstraints>
  <rowConstraints>
      <RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
      <RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
    <RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
    <RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
  </rowConstraints>
   <children>
      <Label alignment="CENTER" prefHeight="150.0" prefWidth="150.0" text="Label" GridPane.columnIndex="1" GridPane.rowIndex="2" />
      <Label alignment="CENTER" prefHeight="150.0" prefWidth="150.0" text="Label" GridPane.rowIndex="2" />
      <Label alignment="CENTER" prefHeight="150.0" prefWidth="150.0" text="Label" GridPane.columnIndex="3" GridPane.rowIndex="1" />
      <Label alignment="CENTER" prefHeight="150.0" prefWidth="150.0" text="Label" GridPane.columnIndex="2" GridPane.rowIndex="1" />
      <Label alignment="CENTER" prefHeight="150.0" prefWidth="150.0" text="Label" GridPane.columnIndex="1" GridPane.rowIndex="1" />
      <Label alignment="CENTER" prefHeight="150.0" prefWidth="150.0" text="Label" GridPane.rowIndex="1" />
      <Label alignment="CENTER" prefHeight="150.0" prefWidth="150.0" text="Label" GridPane.columnIndex="3" />
      <Label alignment="CENTER" prefHeight="150.0" prefWidth="150.0" text="Label" GridPane.columnIndex="2" />
      <Label alignment="CENTER" prefHeight="150.0" prefWidth="150.0" text="Label" GridPane.columnIndex="1" />
      <Label alignment="CENTER" prefHeight="150.0" prefWidth="150.0" text="Label" />
      <Label alignment="CENTER" prefHeight="150.0" prefWidth="150.0" text="Label" GridPane.columnIndex="2" GridPane.rowIndex="3" />
      <Label alignment="CENTER" prefHeight="150.0" prefWidth="150.0" text="Label" GridPane.columnIndex="3" GridPane.rowIndex="3" />
      <Label alignment="CENTER" prefHeight="150.0" prefWidth="150.0" text="Label" GridPane.columnIndex="3" GridPane.rowIndex="2" />
      <Label alignment="CENTER" prefHeight="150.0" prefWidth="150.0" text="Label" GridPane.columnIndex="2" GridPane.rowIndex="2" />
      <Label alignment="CENTER" prefHeight="150.0" prefWidth="150.0" text="Label" GridPane.rowIndex="3" />
      <Label alignment="CENTER" prefHeight="150.0" prefWidth="150.0" text="Label" GridPane.columnIndex="1" GridPane.rowIndex="3" />
   </children>
</GridPane>

Danke schonmal!
 
sobald du die min und max width gleich setzt hat das label diese exakte größe egal was der parent berechnet

ob das sinnvoll ist oder nicht sei dahin gestellt
wahrscheinlich ist es besser die breite and die höhe zu binden oder umgekehrt
 

Zurück
Oben