gpt4 book ai didi

javafx-2 - JavaFX:将子级添加到根父级后自动调整阶段

转载 作者:行者123 更新时间:2023-12-04 13:03:08 26 4
gpt4 key购买 nike

我需要展示一个 Panel在同一个 Scene 中有一个额外的选项当我点击 Button ,但我不知道如何实现这种行为。 Stage的问题将面板添加到 root 时不调整大小 VBox .

我写了简单的代码来演示这个问题。

import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;

public class Main extends Application {
public static void main(String[] args) {
launch(args);
}

public void start(Stage stage) throws Exception {
final VBox root = new VBox();
Button button = new Button("add label");
root.getChildren().add(button);

button.setOnAction(new EventHandler<ActionEvent>() {
public void handle(ActionEvent event) {
root.getChildren().add(new Label("hello"));
}
});

stage.setScene(new Scene(root));
stage.show();
}
}

我想我需要调用一些方法来通知根容器进行布局,但是我尝试的所有方法都没有给我带来想要的结果。

最佳答案

节目作品

您的程序几乎按照我的预期运行(当您单击“添加标签”按钮时,会向场景中添加一个新标签)。

为什么你看不到它的工作

您无法看到新添加的标签,因为舞台的大小默认设置为适合场景的初始内容。当您向场景中添加更多区域时,舞台不会自动调整大小以包含新区域。

怎么做才能看到它工作

添加标签后手动调整舞台窗口的大小。

或者

设置场景的初始大小,以便您可以看到新添加的标签。

stage.setScene(new Scene(root, 200, 300));

或者

添加每个新标签后, size the stage to the scene .
stage.sizeToScene();

关于javafx-2 - JavaFX:将子级添加到根父级后自动调整阶段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19670357/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com