JScrollPane怎么才能出现滚动条

问题遇到的现象和发生背景

想要在JScrollPane里面加入大量横排摆放的按钮,数量很多,需要滚动条浏览
框架:

JPanel panel = new JPanel(null);
JScrollPane pane = new JScrollPane();
// pane嵌入了panel,且能正常显示panel里面的组件

问题相关代码,请勿粘贴截图

已经在窗口尺寸被改变事件的监听器中加入如下代码:

for(JButton button: buttons){
                    button.setSize(pane.getWidth(),List_Button_Height); // List_Button_Height是每个按钮的高度,每个按钮的宽度固定,为panel的宽度
                    panel.setSize(pane.getWidth(),
                            (Folder_JSON_Array.toArray().length + File_JSON_Array.toArray().length) * List_Button_Height);
                                //Folder_JSON_Array.toArray().length + File_JSON_Array.toArray().length是按钮的数量
                    System.out.println("pane height=" + pane.getHeight());
                    System.out.println("panel height=" + panel.getHeight()); // 输出panel高度和JScrollPane的高度。

                }

运行结果及报错内容

pane height=417
panel height=560
pane height=417
panel height=560
pane height=417
panel height=560

这是更改窗口大小的时候输出的内容(截取了一部分),可知panel的高度是固定的(因为按钮数量一定),但我调整窗口高度(JScrollPane的高度随之变化),让JScrollPane的高度小于panel的高度,但发现这个时候并没有在右侧出现垂直方向的滚动条

我的解答思路和尝试过的方法

反复调试无法修复

我想要达到的结果

在按钮总体占据的高度超过JScrollPane高度(约等于窗口高度)的时候右侧出现滚动条,如图所示:

img

pane.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);
设置垂直滚动条