java - 如何允许元素的大小(例如,HBox)在其所属的舞台之外增长(溢出)

标签 java javafx stage

是否可以允许元素的大小(例如,HBox)在其所属的舞台之外增长(溢出),同时仍然可见,如果可以,我该如何处理?

最佳答案

将 Pane 包装在一个组中,该组不能根据场景调整大小。在以下示例中,如果注释掉当前的 root.setCenter(...) 并取消注释刚刚添加 hbox 的那个,则 HBox 将被限制为场景的大小(因此当您添加更多标签时,标签将被挤压得越来越小)。

当包裹在Group中时,水平盒将无限增长。

import javafx.application.Application;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.layout.BorderPane;
import javafx.scene.layout.HBox;
import javafx.stage.Stage;

public class GrowingHBoxTest extends Application {

    int count = 0 ;

    @Override
    public void start(Stage primaryStage) {
        HBox hbox = new HBox();
        Button button = new Button("New label");
        button.setOnAction(e -> hbox.getChildren().add(new Label("Label "+(++count))));

        hbox.setMaxWidth(Double.MAX_VALUE);

        BorderPane root = new BorderPane();
        root.setBottom(button);

        // will not grow outside of scene bounds:
        root.setCenter(hbox);

        // will grow outside of scene bounds:
//      root.setCenter(new Group(hbox));

        primaryStage.setScene(new Scene(root, 400, 400));
        primaryStage.show();
    }

    public static void main(String[] args) {
        launch(args);
    }
}

关于java - 如何允许元素的大小(例如,HBox)在其所属的舞台之外增长(溢出),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31387703/

相关文章:

java - 如何在 JavaFx 中创建打开另一个窗口的按钮,无需 GUI 构建器、FXML、swing 或 awt?

java - 标签的舞台叠加 - 标签很大,设置范围对于缩放来说毫无用处

java - 访问帐户名/密码字段

java - 使用西类牙语为斯坦福自然语言处理 (StanfordNLP) 配置 SUTime - Java

java - 在不同的类文件中将 JScrollPane 设置为 JTextArea

c# - 将 JSON 字符串反序列化为自定义 Java 对象

java - 有没有办法在javafx中显示从meshview到平面绘图的uv?

java - 如何不对文件路径进行硬编码

java - 将 JavaFx 添加到小程序

flash - Flash AS3 中的动态舞台宽度和高度