Was ich versuche zu erstellen ist eine scrollbare All-Button-GUI-Layout. Ich konnte dies mit 4 verschiedenen ListViews erreichen, aber die vier Scrollbalken, die den Listenansichten zugeordnet waren, gefielen mir nicht. Die Anzahl der Schaltflächen wird zur Laufzeit ermittelt, da dies von der Anzahl der Einträge in einer Datenbank abhängt. Ich denke, ein TableView wird für meine Situation besser sein.Suchen Sie zum Beispiel Code eines JavaFx TableView mit nur einem Button in einer Spalte?
Antwort
Einlochen GridPane
innerhalb eines ScrollPane
wäre eine bessere Lösung
<ScrollPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1">
<content>
<GridPane>
<columnConstraints>
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
</columnConstraints>
<rowConstraints>
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
</rowConstraints>
</GridPane>
</content>
</ScrollPane>
Mit diesem Code Sie die Anzahl der Spalten und Zeilen hinzufügen können, die Sie benötigen
myGridPane.getRowConstraints().clear();
myGridPane.getColumnConstraints().clear();
int numRow = 10;
int numCol = 20;
for (int i = 0; i < numRow; i++) {
RowConstraints rConstraint = new RowConstraints();
rConstraint.setPercentHeight(100);
myGridPane.getRowConstraints().add(rConstraint);
}
for (int i = 0; i < numCol; i++) {
ColumnConstraints cConstraint = new ColumnConstraints();
cConstraint.setPercentWidth(100);
myGridPane.getColumnConstraints().add(cConstraint);
}
Wenn Sie jetzt einen Knopf an einer bestimmten Position innerhalb des GridPane
setzen möchten, können Sie th. Tun ist mit den statischen Methoden der Klasse GridPane
GridPane.setColumnIndex(myButtonXY, colX);
GridPane.setRowIndex(myButtonXY, colY);
Danke! Aus irgendeinem Grund GridPane.setColumnIndex (myButtonXY, colX); und GridPane.setRowIndex (myButtonXY, colY); würde nicht für mich arbeiten. Ich musste es in myGridPane.add ändern (myButtonXY, colx, coly); – Sedrick
Vielleicht liegt das an der JDK-Version oder der JavaFX-Version :-) – Westranger
Wenn meine Antwort Ihnen geholfen hat, Ihr Problem zu lösen, zögern Sie bitte nicht, es zu akzeptieren ;-) – Westranger
A Gridview eine bessere Lösung – Westranger
Dank sein würde! Werde versuchen. Fügt der Gidview Scrolling hinzu, sobald die Summe der Schaltflächenhöhe größer ist als die Ansichtshöhe? – Sedrick
Nein, Sie müssen es in ein ScrollPane wickeln, dann scrollen wird automatisch behandelt – Westranger