当舞台大小变化时,如何使窗格和元素可以解析



您能告诉我如何意识到,在用Mousedragg调整舞台时,将调整窗格的整体内容。这是我的代码:

public class fab extends Application {
private Stage stage;
private Pane pane;
private Scene scene;

@Override
public void start(Stage stage) throws Exception {
this.stage = stage;
Button button = new Button("Button");
pane = new Pane();
pane.getChildren().add(button);
stage.setTitle("Test");
scene = new Scene(pane, 640, 640);
stage.setScene(scene);
stage.show();
}
public static void main(String[] args) {
    launch(args);
}

我认为有具有约束力的想法。但是我不知道如何使用它,以使舞台大小变化时使窗格的所有节点可解析。

我正在搜索没有FXML或SceneBuilder的解决方案。

预先感谢您。

如果您坚持使用Pane容器,则在行scene = new Scene(pane, 640, 640);添加以下内容之后:

scene.widthProperty().addListener((c,o,n)->button.setPrefWidth((Double)n));
scene.heightProperty().addListener((c,o,n)->button.setPrefHeight((Double)n));

和在行之后 stage.setScene(scene);添加以下内容:

button.setPrefSize(scene.getWidth(), scene.getHeight());

这与Pane一起使用,并做您所需的事情。

,但我更喜欢使用AnchorPane容器,并将顶部,右,底部和左锚定为0。

如果您想将按钮的宽度绑定到场景宽度

,这是解决方案
button.minWidthProperty().bind(scene.widthProperty());

您也可以修改此/- ex

的任何内容
button.minWidthProperty().bind(scene.widthProperty().subtract(20));

您可以为高度做同样的事情

button.minHeightProperty().bind(scene.heightProperty().subtract(200));

最新更新