JAVA - GridLayout 和 JScrollPane 表现异常

JAVA - GridLayout and JScrollPane behave unexpected

我在 Java 中的 GridLayout 表现与我预期的不同。

我想在一个 JScrollPane 中有多个框(如下面的屏幕截图所示)。

但是当我必须减少条目时(例如 2),框的高度是 100% 高度。

有人能告诉我我的代码有什么问题吗?

    ResultSet result = MysqlDataReader.ReadFromDataBase("DUMMY",connectionStrato);
    innerPanel.removeAll();
    innerPanel.setLayout(new GridLayout(Integer.parseInt(Math.round(result.getRow() / 3) + ""), 6, 2, 2));

    while(result.next()){
        URL url;
        Image image;
        try{
            url = new URL("DUMMY" + result.getString(1) + ".jpg");
            image = ImageIO.read(url.openStream());
        } catch (MalformatedURLException ex) {
            url = new URL("DUMMY");
            image = ImageIO.read(url.openStream());
            Logger.getLogger(ItemforList.class.getName()).log(Level.SEVERE, null, ex);
        } catch(IOException ex){
            url = new URL("DUMMY);
            image = ImageIO.read(url.openStream());
            Logger.getLogger(ItemforList.class.getName()).log(Level.SEVERE, null, ex);
        }
        ItemforList item = new ItemforList("DUMMY"+result.getString(1)+".jpg", result.getString(1)+"");
        innerPanel.add(item)

    }
    scrollPaneL.setViewportView(innerPanel);
    Component[] components = innerPanel.getComponents();
    for (Component component : components){
        if(component.getClass().equals(ItemforList.class)){
            ItemforList item = (ItemforList) component;
            System.out.printLn("TEST");
            item.SetResizedIcon();
        }
    }

您没有 post 任何代码,所以我无法评论或直接修复它。

但要回答你的问题,解决问题的方法是用虚拟组件填充额外的网格框 - 只是为了占用 space