You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaFX ScrollPane内容不显示:如何实现可滚动面板列表?

解决JavaFX ScrollPane为空的问题

核心问题是你创建了承载卡片的cardContainer,但从未将它设置为ScrollPane的内容,这就是ScrollPane一直为空的原因。另外你的卡片标签只显示固定前缀,没有传入实际参数值,也需要修正。

修正后的代码

ManagerSceneController 代码

public class ManagerSceneController {

    @FXML
    private ScrollPane ScrollingContainer;
    
    public void initialize() {
        FillScrollPane();
    }
    
    public void FillScrollPane() {
        System.out.println("Führe aus");
        VBox cardContainer = new VBox(10);
        cardContainer.setPadding(new Insets(10));
        
        for (int i = 1; i <= 50; i++) { // TO DO: Replace with actual loading
            VBox card = CardComponent.createCard("Webseite"+i, "Username"+i, "Password"+i);
            cardContainer.getChildren().add(card);
            
            System.out.println(card);
            System.out.println("Number of children in cardContainer: " + cardContainer.getChildren().size());
            System.out.println("Erfolgreich ausgeführt");
        }
        // 关键:将cardContainer设置为ScrollPane的内容
        ScrollingContainer.setContent(cardContainer);
        // 这些配置放在循环外即可,无需重复执行
        ScrollingContainer.setFitToWidth(true);
        ScrollingContainer.setFitToHeight(true);
    }
}

CardComponent 代码(修正标签内容)

public class CardComponent {
    public static VBox createCard(String website, String username, String password) {
        // 将参数值拼接到标签文本,否则仅显示固定前缀
        Label websiteLabel = new Label("Website: " + website);
        Label usernameLabel = new Label("Username: " + username);
        Label passwordLabel = new Label("Password: " + password);
        
        VBox card = new VBox(10);
        card.getChildren().addAll(websiteLabel, usernameLabel, passwordLabel);
        card.setPadding(new Insets(10));
        card.setStyle("-fx-border-color: black; -fx-border-width: 1px;");
        
        return card;
    }
}

额外说明

  • ScrollPane必须通过setContent(Node)方法设置内部显示节点,否则无论添加多少子元素都不会显示内容。
  • 循环内重复执行setFitToWidth和setFitToHeight属于冗余操作,放在循环外执行一次即可。
  • 确保SceneBuilder中ScrollPane的fx:id和控制器中的ScrollingContainer完全一致(大小写敏感),这也是常见的排查点。

内容的提问来源于stack exchange,提问作者ByGoalZ

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 16:43:30