Определение размера JScrollPane в JTabbedPane в JFrame

Я понимаю из этого постаНе устанавливать размеры на JComponent что вы не устанавливаете предпочтительные размеры для какого-либо компонента, и вместо этого пусть менеджер раскладки сделает это за вас.

У меня вопрос, у меня есть JPanel, который я вставил в JTabbedPane в JFrame, как это

JFrame frame=new JFrame(); 
JTabbedPane pane=new JTabbedPane();
pane.addTab("Tab 1",new JScrollPane(getJPanel1()));
pane.addTab("Tab 2",new JScrollPane(getJPanel2()));
frame.setContentPane(pane);

Теперь в этом случае JTabbedPane примет размер компонента максимального размера, который вы добавляете к нему. Из-за этого мой JScrollPane не появляется вообще. Мне нужно установить предпочтительный размер JScrollPane, если я его не установлю, полосы прокрутки не появятся, а содержимое будет обрезано.

Как мне использовать менеджер раскладки, чтобы решить эту проблему. Я хочу специально сделать это:

Заставьте JFrame / JTabbedPane / JPanelInTab расширяться до высоты экрана (принимая на панель задач окон), если содержимое вкладки будет сокращаться, должны появиться полосы прокрутки. Ширина рамки должна соответствовать точно так же, как JTabbedPane.

РЕДАКТИРОВАТЬ

Вот MVCE, который показывает, что я пытаюсь сделать. Я включил изменения в соответствии с предложением Peeskillet, но нет никакого эффекта

import javax.swing.*;
import java.awt.*;

public class ScrollPaneTest {

    public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable() {
            @Override
            public void run() {
                JFrame frame=new JFrame();
                frame.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);

                JTabbedPane tabbedPane=new JTabbedPane();

                tabbedPane.addTab("Tab 1", wrapWithBorderLayoutPanel(getPanel()));
                tabbedPane.addTab("Tab 2", wrapWithBorderLayoutPanel(getPanel()));
//
//                tabbedPane.addTab("Tab 1", new JScrollPane(getPanel()));
//                tabbedPane.addTab("Tab 2", new JScrollPane(getPanel()));

                frame.setContentPane(tabbedPane);
                frame.pack();
                frame.setVisible(true);
            }

            private JPanel wrapWithBorderLayoutPanel(JPanel panel) {
                JPanel borderLayoutPanel=new JPanel(new BorderLayout());
                borderLayoutPanel.add(new JScrollPane(panel), BorderLayout.CENTER);
                return borderLayoutPanel;
            }

            private JPanel getPanel() {
                JPanel panel=new JPanel();
                Box box = Box.createVerticalBox();
                for (int i = 1; i <= 100; i++) {
                    box.add(new JLabel("This is Label #" + i));
                }
                panel.add(box);
                return panel;
            }
        });
    }

}

Как только я это сделаю, ниже приведен вывод, который я получаю. Кадр не заканчивается на панели задач. Это тянется за этим. Таким образом, последний ярлык скрыт за панелью задач. Я бы хотел, чтобы кадр заканчивался до начала панели задач.

PS: нет изменений, если я оберну панель панелью BorderLayout или добавлю панель прокрутки непосредственно на панель с вкладками. Оба результата в одном и том же. Вы можете проверить то же самое, комментируя строки

           //tabbedPane.addTab("Tab 1", wrapWithBorderLayoutPanel(getPanel()));
            //tabbedPane.addTab("Tab 2", wrapWithBorderLayoutPanel(getPanel()));

            tabbedPane.addTab("Tab 1", new JScrollPane(getPanel()));
            tabbedPane.addTab("Tab 2", new JScrollPane(getPanel()));

Ответы на вопрос(2)

Ваш ответ на вопрос