无法从 MigLayout 底部删除额外的行

Can't remove extra row from bottom of MigLayout

我正在 Eclipse Neon 上使用 Java 中的 MigLayout 构建 GUI。我的代码应该提供两行和两列,间距为 15,当 window 扩展时,它们会增长以填充框架。我不确定为什么,但是自动生成了第三行,我似乎无法摆脱。我已将布局硬编码为两行和两列,并尝试使用 swing 编辑器删除第三行。虽然删除按钮适用于第 0 行和第 1 行,删除它们及其内容,但它对最后一行没有任何作用。

下面是我的代码的图片 运行 那讨厌的第 3 行

Example

这是我的代码

public Master() {
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    setBounds(100, 100, 440, 163);
    contentPane = new JPanel();
    contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
    setContentPane(contentPane);
    contentPane.setLayout(new MigLayout("", "[grow]15[grow]", "[grow]15[grow]"));

    btnDailyLog = new JButton("Daily Log");
    btnDailyLog.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent arg0) {
        }
    });
    contentPane.add(btnDailyLog,  "spany 2,grow");


    btnEmpReports = new JButton("Employee Reports");
    btnJobReports = new JButton("Job Reports");

    contentPane.add(btnEmpReports, "grow,wrap");
    contentPane.add(btnJobReports, "grow,wrap");


}

额外的行是由于 contentPane.add(btnJobReports, "grow,wrap"); 中的 wrap 指令引起的 删除 wrap 以解决问题:

contentPane.add(btnJobReports, "grow");

例如:

import java.awt.Dimension;

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

import net.miginfocom.swing.MigLayout;

public class Tester extends JPanel{
    public Tester(){
        super(new MigLayout("", "[grow]15[grow]", "[grow]15[grow]"));

        JButton btnDailyLog = new JButton("Daily Log");
        JButton btnEmpReports = new JButton("Employee Reports");
        JButton btnJobReports = new JButton("Job Reports");

        add(btnDailyLog,"spany 2,grow");
        add(btnEmpReports, "grow,wrap");
        add(btnJobReports, "grow");
    }

    @Override
    public Dimension getPreferredSize() {
        return new Dimension(440, 163);
    }

    private static void createAndShowGUI(){
        JFrame frame = new JFrame("Tester");

        Tester tester = new Tester();
        frame.add(tester);

        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.pack();
        frame.setLocationByPlatform(true);
        frame.setVisible(true);
    }

    public static void main(String[] args) {
        javax.swing.SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                createAndShowGUI();
            }
        });
    }
}