Java JScrollPane不能覆盖整个JPanel

Java JScrollPane不能覆盖整个JPanel,java,swing,jscrollpane,Java,Swing,Jscrollpane,我不知道我是否错过了什么或者这是一个错误。 我创建了一个包含几个JTextArea的面板 但是滚动窗格只允许我滚动到第22行。但是有70行 当我调整框架的大小时,滚动窗格也会调整大小,我可以看到比只使用滚动条向下滚动时更多的行 不要介意里面的代码 国家1: 国家2: 有70行! 但我无法滚动到它们 有什么建议吗? 我只设置了一个rowheaderView: jScrollPane1.setRowHeaderView(codeTextArea2.getRowNumbers()); 以及viewp

我不知道我是否错过了什么或者这是一个错误。 我创建了一个包含几个JTextArea的面板 但是滚动窗格只允许我滚动到第22行。但是有70行 当我调整框架的大小时,滚动窗格也会调整大小,我可以看到比只使用滚动条向下滚动时更多的行

不要介意里面的代码

国家1:

国家2:

有70行! 但我无法滚动到它们

有什么建议吗? 我只设置了一个rowheaderView:

jScrollPane1.setRowHeaderView(codeTextArea2.getRowNumbers());
以及viewportView:

jScrollPane1.setViewportView(codeTextArea2);
codeTextArea2是扩展JPanel的自定义类,包含多个JTextArea到HFOE注释

不要介意里面的代码

我们不介意里面的代码的原因是:

这对我来说似乎很好,因为我没有你的代码,我模拟了我认为你拥有的最简单的代码

简单的JPanel类,它包含一个包含70行20列的JTextArea,每个JTextArea通过简单的append给出一个数字。。在正常大小和最大化行数上似乎没有变化

这张太大了,无法拍摄完整的未缩放屏幕

import java.awt.BorderLayout;
import java.awt.Dimension;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.SwingUtilities;

public class Test {

    public Test() {
        createAndShowGui();
    }

    private void createAndShowGui() {
        JFrame frame = new JFrame();
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        MyPanelTextAreas panelWithTextAreas = new MyPanelTextAreas();

        JScrollPane jsp = new JScrollPane(panelWithTextAreas);
        jsp.setPreferredSize(new Dimension(500, 400));//dont want it too big 

        frame.add(jsp);

        frame.pack();
        frame.setVisible(true);

    }

    public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable() {
            @Override
            public void run() {
                new Test();
            }
        });
    }
}

class MyPanelTextAreas extends JPanel {

    JTextArea area = new JTextArea(70, 20);

    public MyPanelTextAreas() {
        setLayout(new BorderLayout());
        add(area);
        for (int i = 1; i <= 70; i++) {
            area.append((i == 1 ? "" : "\n") + i);
        }
        area.setCaretPosition(1);
    }
}

您的问题包含的信息不足以让我回答,但我有一个猜测:您没有在任何地方使用空布局,是吗?如果是这样的话,就去掉它,并使用JScrollPane可以处理的有效布局。还有,别担心里面的代码会给我们带来严重的伤害。当你不知道是什么导致了你的问题时,你怎么能这么说呢?另外,你可以设置viewportView所持有的组件的大小或preferredSize吗?非常感谢,这是使用空布局和设置preferredSize的组合。欢迎你,但下次,请不要介意里面的代码。如果您知道问题的原因,您可能不会在此处发布问题。向我们展示代码。别逼我们猜。