我期望的行爲如下,fieldPane
垂直居中,位於table
旁邊,但兩者頂部對齊(位於bigGrid
行0)。這是爲什麼發生?我應該怎麼做?JavaFX:將GridPane單元格設置爲所需的垂直位置
import javafx.application.Application;
import javafx.geometry.HPos;
import javafx.geometry.VPos;
import javafx.stage.Stage;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.control.TableView;
import javafx.scene.control.TextField;
import javafx.scene.layout.GridPane;
import javafx.scene.layout.RowConstraints;
public class Main extends Application {
@Override
public void start(Stage stage) {
TableView table = new TableView();
GridPane fieldPane = new GridPane();
Button addButton = new Button("Add Crew"),
updateButton = new Button("Update Crew");
Label crewIdLabel = new Label("Crew ID"),
crewNameLabel = new Label("Crew Name");
TextField crewIdText = new TextField(),
crewNameText = new TextField();
fieldPane.setHgap(10);
fieldPane.setVgap(10);
fieldPane.addRow(0, crewIdLabel, crewIdText);
fieldPane.addRow(1, crewNameLabel, crewNameText);
GridPane bigPane = new GridPane();
bigPane.setHgap(10);
bigPane.setVgap(10);
bigPane.add(table, 0, 0, 2, 1);
bigPane.add(fieldPane, 2, 0, 2, 1);
GridPane.setValignment(fieldPane, VPos.CENTER);
bigPane.add(addButton, 1, 1, 1, 1);
GridPane.setHalignment(addButton, HPos.RIGHT);
bigPane.add(updateButton, 3, 1, 1, 1);
GridPane.setHalignment(updateButton, HPos.RIGHT);
Scene scene = new Scene(bigPane);
stage.setScene(scene);
stage.show();
}
public static void main(String[] args) {
launch(args);
}
}
您可以修改此代碼,以便它創建一個[MCVE]? –
@James_D,完成。 –