2

我正在尝试为我正在开发的会员计​​划创建一个由 4 个按钮组成的 2x2 网格。我遇到的问题是,无论我做什么,它都只是显示为 1x4 网格。代码如下。

    private void buildStartupPanel()
{
    startup = new JPanel();
    startup.setLayout(new GridLayout(2,2));
    addMember = new JButton ("Add a new member");
    removeMember = new JButton ("remove Member");
    reviewMember = new JButton ("Review a Member");
    reviewAll = new JButton ("Review All Members");
    startup.add(addMember);
    startup.add(removeMember);
    startup.add(reviewMember);
    startup.add(reviewAll);
    addMember.addActionListener(this);
    removeMember.addActionListener(this);
    reviewMember.addActionListener(this);
    reviewAll.addActionListener(this);
}

当我输出结果时,它显示以下内容

添加新成员

删除成员

审查会员

审查所有成员

代替

添加新成员 删除成员

查看会员 查看所有会员

另外,如果有人可以帮我在每个按钮之间留一个空格,那就太好了!

4

2 回答 2

4

使用第 3 和第 4int到构造函数的间距。否则,似乎在这里工作得很好:

启动窗格

import java.awt.GridLayout;
import javax.swing.*;

public class StartupPanel {

    private JComponent getStartupPanel()
    {
        JPanel startup = new JPanel();
        startup.setLayout(new GridLayout(2,2,50,5));
        JButton addMember = new JButton("Add a new member");
        JButton removeMember = new JButton("remove Member");
        JButton reviewMember = new JButton("Review a Member");
        JButton reviewAll = new JButton("Review All Members");
        startup.add(addMember);
        startup.add(removeMember);
        startup.add(reviewMember);
        startup.add(reviewAll);

        return startup;
    }

    public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable() {
            @Override
            public void run() {
                StartupPanel sp = new StartupPanel();
                JOptionPane.showMessageDialog(null, sp.getStartupPanel());
            }
        });
    }
}
于 2012-06-04T01:48:26.463 回答
2

感谢您的回复!来发现这是我添加到代码中的第二个面板拼写错误(哇塞)并且把所有东西都扔掉了。猜猜这就是发布完整的 SSCCE 的重要性。至少我学会了如何做间距!谢谢大家!

于 2012-06-04T22:56:56.037 回答