无法从 MigLayout 底部删除额外的行
Can't remove extra row from bottom of MigLayout
我正在 Eclipse Neon 上使用 Java 中的 MigLayout 构建 GUI。我的代码应该提供两行和两列,间距为 15,当 window 扩展时,它们会增长以填充框架。我不确定为什么,但是自动生成了第三行,我似乎无法摆脱。我已将布局硬编码为两行和两列,并尝试使用 swing 编辑器删除第三行。虽然删除按钮适用于第 0 行和第 1 行,删除它们及其内容,但它对最后一行没有任何作用。
下面是我的代码的图片 运行 那讨厌的第 3 行
这是我的代码
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();
}
});
}
}