java - 我如何布置我的按钮,以便它们从左上角到右下角(填充第一行然后第二行)
问题描述
所以我有一个 JPanel 填充白色 JButtons 并且只有 Jbuttons:
当只有按钮 1 和按钮 20 可见时,我该如何做到这一点,因此按钮布局变为可见 ,如果我要让 Jbuuton 15 可见,它将出现在 JButton 1 和 20 之间。
我不能真正给出代码,因为它是在 NetBeans 生成的代码中制作的,并且可见的程序设置按钮取决于很多其他的东西,所以让它独立需要很多时间。
编辑:在我的情况下,使用一种方法通过一种方法将 JButtons 添加到网格中
public static void RedoGridLayout(){
GridLayout UpgradesLayout = new GridLayout(0,5);
CookieclickerGUI.Panel_Upgrade.setLayout(UpgradesLayout);
for(int i = 0; i<upgrades.size(); i++){
Upgrades upgrade = upgrades.get(i);
JButton Button = upgrade.getJButton();
if(Button.isVisible()){
CookieclickerGUI.Panel_Upgrade.add(Button);
System.out.println("Added...\n" + Button + "\nButton to the grid");
}
}
}
这无论如何都会在底部而不是顶部的网格中添加按钮,因此如果您想查看需要向下滚动的按钮。
编辑 2:*
按钮被放置在底部,因为其他按钮仍在面板中(它们是),所以.removeAll();
在将按钮放在左上角但扩展以适合整个面板之前这样做。!.isvisible()
我通过添加使按钮正确形状后的所有按钮来修复。
解决方案
我的问题的答案是 GridLayout。它把我的按钮放在我想要的网格中。
将网格放置在底部的解决方案是因为我将网格添加到布局中时犯了一个简单的错误,因为它包含许多设置为的按钮,.setvisible(false);
因此程序将其放置在所有按钮之后。这是通过简单.removeAll();
地删除存储在其中的所有 JComponents 来解决的。
请注意,我将所有 JComponents 存储在一个 JButton 数组中,因为我只有按钮,然后执行了一个通过数组运行的 for 循环,检查它是否可见以及它是否已添加到网格中。
推荐阅读
- node.js - 如何在rest api调用中构造json并使其同步
- php - 数据库错误:无法使用数据库 mydatabase MySQL 错误:0 () 会话停止
- c# - 授权属性无法阻止 ASP.Net Core 3.0 Web API 中的请求
- python - 有没有更 Pythonic 的方式将布尔值列表转换为整数?
- c++ - 我已经安装了 sublime3 用于在 c++ 中进行编程,但是在编写了一个简单的程序之后,我得到了以下错误
- kubernetes - 如何设置 Kubernetes ClusterRole 绑定以授予“view”访问所有命名空间的服务帐户的权限
- javascript - 删除 onclick 反应
- mysql - 如何在 Mybatis 中使用 MySQL JSON 函数?
- weblogic12c - NoSuchFieldError:WHITESPACE,同时重新启动 weblogic 管理员
- laravel - 如何将 Sabre Api 与 laravel 集成