我试图在FXML中设计一个UI,部分使用Scene Builder。我使用Anchorpane将所有内容放在场景中。但是,当我将窗口调整到更大的尺寸时,按钮会从中心向左移动。我想确保它们留在页面的中心。这该怎么做? 感谢。
答案 0 :(得分:2)
简单的方法是使用StackPane或BorderPane。在BorderPane的情况下,您可以使用Pos.CENTER将包含按钮的按钮或容器保持在中心位置。
如果确实需要AnchorPane,您可以在调整大小时使用width和height属性更改侦听器来调整按钮位置。
private AnchorPane anchorPane;
private Button button;
anchorPane.widthProperty().addListener((ObservableValue<? extends Number> observable, Number oldValue, Number newValue) -> {
button.setLayoutX(newValue.doubleValue()/2 - (button.widthProperty().getValue() / 2));
});
anchorPane.heightProperty().addListener((ObservableValue<? extends Number> observable, Number oldValue, Number newValue) -> {
button.setLayoutY(newValue.doubleValue()/2 - (button.heightProperty().getValue() / 2));
});