我有一个简单的类StatPanel,它扩展JPanel并有几个JTextFields、一个JCheckBox和一对JLabels。该面板将用作一系列面板,用于显示信息并允许用户编辑其中的一些数据,JTextFields我可能会将其中大约 40 个面板全部堆叠在JScrollPane JPanel. 我使用的布局是GridLayout(0,1).
我让它们工作,但是当它们在滚动面板中时,它们垂直间隔太远。我尝试过更改边距、更改间距GridLayout并更改各种项目的边距。我所做的一切似乎都无法让他们更亲近。
这是StatPanel该类的构造函数:
    public StatPanel(String statName, String statAbility){
        super();
        this.skillName = statName;
        this.setAlignmentY(CENTER_ALIGNMENT);
        isClassSkill = new JCheckBox();
        statLabel = new JLabel(skillName);
        statTotalField = new JTextField(maxLength + 1);
        statTotalField.setHorizontalAlignment(JTextField.CENTER);
        statAbilityLabel = new JLabel("= " + statAbility + " ");
        statAbilityModField = new JTextField(maxLength);
        statAbilityModField.setHorizontalAlignment(JTextField.CENTER);
        statSeperator1 = new JLabel(" + ");
        statRanksField = new JTextField(maxLength);
        statRanksField.setHorizontalAlignment(JTextField.CENTER);
        statSeperator2 = new JLabel(" + ");
        statMiscModField = new JTextField(maxLength);
        statMiscModField.setHorizontalAlignment(JTextField.CENTER);
        this.add(isClassSkill);
        this.add(statLabel);
        this.add(statTotalField);
        this.add(statAbilityLabel);
        this.add(statAbilityModField);
        this.add(statSeperator1);
        this.add(statRanksField);
        this.add(statSeperator2);
        this.add(statMiscModField);
    }
}
当我在程序中使用它时,它看起来像这样:

由于我要堆叠这么多,我希望它们几乎是一个在另一个之上,但我似乎可以消除它们之间的差距。
这是怎么做到的?
谢谢您的帮助。