繁体   English   中英

如何使按钮用完BorderLayout中的所有空间而没有空白?

[英]How do I make a button use up all of the space within a BorderLayout leaving no white space?

我有一个程序可以创建一个填充有随机颜色的8x8网格(已经完成了此操作),我应该在底部添加一个按钮,该按钮应该填充整个底部,这将用于重置颜色。 我已经有了网格和按钮,但是,我的按钮并没有填满底部的整个空间,而只占一半。 如何使其充满整个空间?

我的代码:

public void createGUI() 
{
    guiFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    guiFrame.setTitle("Label demo");
    JPanel mainPanel = new JPanel();
    JPanel gridPanel = new JPanel();
    JPanel buttonPanel = new JPanel();
    JButton refreshButton = new JButton("Press me to refresh labels");
    mainPanel.setLayout(new BorderLayout());
    guiFrame.getContentPane().add(mainPanel);
    gridPanel.setLayout(new GridLayout(8, 8));
    for (int i = 0; i < arrayLabels.length; i++)
    {
        arrayLabels[i] = new ColorLabel(80, 80, new Color(rand.nextInt()), 0, new Color(rand.nextInt()));
    }

    for (int i = 0; i < 8*8; i++)
    {
        gridPanel.add(arrayLabels[i]);
    }
    guiFrame.getContentPane().add(gridPanel);
    buttonPanel.add(refreshButton);
    guiFrame.getContentPane().add(buttonPanel, BorderLayout.SOUTH);
    guiFrame.setVisible(true);
}

我程序的输出当前是这样的: https : //imgur.com/a/fw1Bx92

还要设置刷新按钮的JPanel布局! 我在下面举一个例子,您可以检查一下:

public static void createGUI() 
{
    JFrame guiFrame = new JFrame("a");
    guiFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    guiFrame.setTitle("Label demo");
    JPanel mainPanel = new JPanel();
    JPanel gridPanel = new JPanel();
    JPanel buttonPanel = new JPanel(new BorderLayout());
    JButton refreshButton = new JButton("Press me to refresh labels");
    mainPanel.setLayout(new BorderLayout());
    guiFrame.getContentPane().add(mainPanel);
    gridPanel.setLayout(new GridLayout(8, 8));
    JLabel arrayLabels[] = new JLabel[64];
    for (int i = 0; i < 64; i++)
    {
        arrayLabels[i] = new JLabel("a");
    }

    for (int i = 0; i < 8*8; i++)
    {
        gridPanel.add(arrayLabels[i]);
    }
    guiFrame.getContentPane().setLayout(new BorderLayout());
    guiFrame.getContentPane().add(gridPanel,BorderLayout.CENTER);
    buttonPanel.add(refreshButton,BorderLayout.CENTER);
    guiFrame.getContentPane().add(buttonPanel, BorderLayout.SOUTH);
    guiFrame.setVisible(true);
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM