首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >自动调整大小的ScrollPane

自动调整大小的ScrollPane
EN

Stack Overflow用户
提问于 2014-07-30 12:44:29
回答 1查看 4.6K关注 0票数 2

我想调整ScrollPane的大小以适应父组件。我测试了这段代码:

代码语言:javascript
复制
import javafx.application.Application;
import static javafx.application.Application.launch;
import javafx.scene.Scene;
import javafx.scene.control.ScrollPane;
import javafx.scene.control.ScrollPane.ScrollBarPolicy;
import javafx.scene.layout.BorderPane;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;


public class MainApp extends Application {

    @Override
    public void start(Stage stage) throws Exception {

        BorderPane bp = new BorderPane();
        bp.setPrefSize(600, 600);
        bp.setMaxSize(600, 600);
        bp.setStyle("-fx-background-color: #2f4f4f;");

        VBox vb = new VBox(bp);

        ScrollPane scrollPane = new ScrollPane(vb);
        scrollPane.setFitToHeight(true);
        scrollPane.setFitToWidth(true);

        scrollPane.setHbarPolicy(ScrollBarPolicy.AS_NEEDED);
        scrollPane.setVbarPolicy(ScrollBarPolicy.AS_NEEDED);

        Scene scene = new Scene(scrollPane);

        stage.setScene(scene);
        stage.show();
    }

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

但正如你所见,我没有看到树滚动条。我的代码有什么问题吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-07-30 14:29:54

滚动条不会出现,因为

  1. 您的策略设置为ScrollBarPolicy.AS_NEEDED
  2. 滚动条的宽度和高度将自动调整为其容器的宽度和高度,在本例中,容器是可调整大小的Vbox。

要解决这个问题,您可以删除setFitToHeightsetFitToWidth,并将它们保留为false。

请注意,ScrollBarPolicy也可以设置为ALWAYS,而不是AS_NEEDED,即使在扩展窗口时,AS_NEEDED也会保留滚动条。

有关使用ScrollPane的更多信息,请参阅此处

ScrollPane API: setFitToHeight

代码语言:javascript
复制
    public class MainApp extends Application {

        @Override
        public void start(Stage stage) throws Exception {

            BorderPane bp = new BorderPane();
            bp.setPrefSize(600, 600);
            bp.setMaxSize(600, 600);
            bp.setStyle("-fx-background-color: #2f4f4f;");

            VBox vb = new VBox(bp);

            ScrollPane scrollPane = new ScrollPane(vb);
            //scrollPane.setFitToHeight(true);
            //scrollPane.setFitToWidth(true);

            scrollPane.setHbarPolicy(ScrollBarPolicy.ALWAYS);
            scrollPane.setVbarPolicy(ScrollBarPolicy.ALWAYS);

            Scene scene = new Scene(scrollPane);

            stage.setScene(scene);
            stage.show();
        }

        public static void main(String[] args) {
            launch(args);
        }
    }
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25037196

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档