java - 如何让按钮用完 BorderLayout 中的所有空间,不留空白?
问题描述
我有一个程序可以创建一个填充随机颜色的 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);
}
推荐阅读
- asp.net-mvc - Asp.net 身份保持用户登录
- python - 如何修复 Django 中的“名称‘csrf’未定义’错误
- .net - 无缝单点登录在 Windows 10 的 .NET 4.5.2 WebBrowser 中不起作用
- php - 如何将变量与 mysqli_stmt_bind_param() 中的参数匹配
- botframework - 将 QueryString 传递给 Microsoft bot Web 频道
- c# - httpclient.GetAsync:底层连接已关闭:发送时发生意外错误
- json - 使用 REST Assured,如何检查响应类型的 json 对象数组中是否存在字段?
- php - 我需要将 SQL SERVER 连接到我的 codeigniter 项目
- c - 当我尝试浏览文件时,它会覆盖我要保存到的数组吗?
- python - 如何在 Django 表单选择字段中设置默认值?