想在流式布局中增加一个滑动条,但是增加以后就从垂直的布局变成了水平的布局怎么解决

问题遇到的现象和发生背景
问题相关代码,请勿粘贴截图 package com.shi.mysql;
        sp.setSize(310, 500);
        sp.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        sp.setLocationRelativeTo(null);
        //sp.getContentPane().setLayout(null);int yAxis = BoxLayout.Y_AXIS;
        JPanel panel = new JPanel(new FlowLayout(5,50,10));
        JScrollPane jsp = new JScrollPane(panel);
        jsp.setPreferredSize(new Dimension(10, 10));
      
      
        JButton btn1 = new JButton("芒果");
        JButton btn2 = new JButton("苹果");
        JButton btn3 = new JButton("香梨");
        JButton btn4 = new JButton("香蕉");
        JButton btn5 = new JButton("牙刷");
        JButton btn6 = new JButton("牙膏");
        JButton btn7 = new JButton("可乐");
        JButton btn8 = new JButton("牛奶");
        JButton btn9 = new JButton("矿泉水");
        JButton btn10 = new JButton("泡面");
        JButton btn11 = new JButton("薯片");
        JButton btn12 = new JButton("香肠");
        JButton btn13 = new JButton("汽车人");
        JButton btn14 = new JButton("奶茶");
        JButton btn15 = new JButton("雪碧");
        JButton btn16 = new JButton("烤肠");
        JButton btn17 = new JButton("烤鸭");
        JButton btn18 = new JButton("卫生纸");
        btn1.setPreferredSize(new Dimension(75, 30));
        btn2.setPreferredSize(new Dimension(75, 30));
        btn3.setPreferredSize(new Dimension(75, 30));
        btn4.setPreferredSize(new Dimension(75, 30));
        btn5.setPreferredSize(new Dimension(75, 30));
        btn6.setPreferredSize(new Dimension(75, 30));
        btn7.setPreferredSize(new Dimension(75, 30));
        btn8.setPreferredSize(new Dimension(75, 30));
        btn9.setPreferredSize(new Dimension(75, 30));
        btn10.setPreferredSize(new Dimension(75, 30));
        btn11.setPreferredSize(new Dimension(75, 30));
        btn12.setPreferredSize(new Dimension(75, 30));
        btn13.setPreferredSize(new Dimension(75, 30));
        btn14.setPreferredSize(new Dimension(75, 30));
        btn15.setPreferredSize(new Dimension(75, 30));
        btn16.setPreferredSize(new Dimension(75, 30));
        btn17.setPreferredSize(new Dimension(75, 30));
        btn18.setPreferredSize(new Dimension(75, 30));
  
        panel.add(btn1);
        panel.add(btn2);
  
        panel.add(btn3);
        panel.add(btn4);
      
        panel.add(btn5);
        panel.add(btn6);
     
        panel.add(btn7);
        panel.add(btn8);
        
        panel.add(btn9);
        panel.add(btn10);

        panel.add(btn11);
        panel.add(btn12);
     
        panel.add(btn13);
        panel.add(btn14);
   
        panel.add(btn15);
        panel.add(btn16);
 
        panel.add(btn17);
        panel.add(btn18);
        //sp.setContentPane(panel);
        //jsp.getViewport().add(panel);
        sp.setContentPane(jsp);
        sp.setVisible(true);
    }

}
运行结果及报错内容
我的解答思路和尝试过的方法
我想要达到的结果

你直接用swing拖控件呀。

流式布局本来就是从左到右,从上到下的水平布局,根据窗口大小不一样会发生一些变化。