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

Я понимаю из этого постаДон»t Установить размеры на 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 

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

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