Java Swing-对象之间的巨大空间

Java Swing-对象之间的巨大空间,java,swing,jpanel,layout-manager,grid-layout,Java,Swing,Jpanel,Layout Manager,Grid Layout,我正在使用JavaSwing组件创建一个程序。使用这些组件时,我正在创建一个文本编辑器。我使用按钮而不是菜单来加载/保存。当我尝试执行这些按钮时,我会遇到一些更大的间距问题。我编写了代码,这样就有了一个带有按钮的面板和一个文本编辑器。当我使用它时,两个物体之间的间距很大。另外,文本编辑器所在的窗口是一个网格布局 代码如下: 主包装 import java.awt.FlowLayout; import java.awt.GridLayout; import javax.swing.JButton

我正在使用JavaSwing组件创建一个程序。使用这些组件时,我正在创建一个文本编辑器。我使用按钮而不是菜单来加载/保存。当我尝试执行这些按钮时,我会遇到一些更大的间距问题。我编写了代码,这样就有了一个带有按钮的面板和一个文本编辑器。当我使用它时,两个物体之间的间距很大。另外,文本编辑器所在的窗口是一个网格布局

代码如下: 主包装

import java.awt.FlowLayout;
import java.awt.GridLayout;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextArea;

public class TextEditor {
public static void start(){
    JFrame f = new JFrame("Text editor");
    JTextArea textArea = new JTextArea(20, 50);
    JButton saveButton = new JButton("Save");
    JPanel buttons = new JPanel();

    buttons.add(saveButton);

    f.setLayout(new GridLayout(2,1,10,10));
    f.add(buttons);
    f.add(textArea);

    f.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
    f.pack();
    f.setVisible(true);
}
}
尝试更改:

f.setLayout(new GridLayout(2,1,10,10));
f.add(buttons);
f.add(textArea);
致:

尝试更改:

f.setLayout(new GridLayout(2,1,10,10));
f.add(buttons);
f.add(textArea);
致: