我如何布置我的按钮,以便它们从左上方到右下方(先填充第一行,然后填充第二行)

时间:2018-12-08 19:58:06

标签: java user-interface netbeans jbutton

所以我有一个JPanel填充了白色的JButton,只有Jbutton:Like this

当只有按钮1和按钮20可见时,按钮布局变为Like this时,我该怎么做 如果我要使用Jbuuton 15 Visible,它将出现在JButton 1和20之间。

我正在尝试使其固定在顶部和左侧,并将间距设置为0,但这是这样做的:What is happening for me

我真的不能给出代码,因为它是由NetBeans生成的代码制成的,而程序设置按钮可见取决于许多其他内容,因此使其独立需要很多时间。

编辑: 使用方法通过方法将JButton添加到网格 就我而言

ManagedResource

这是将按钮添加到底部而不是顶部的网格中的方式,因此,如果要查看按钮,则需要向下滚动。

编辑2:* 由于其他按钮仍在面板中,所以按钮被放置在底部(它们原是在办公室中),因此,在将按钮放置在左上方但扩展以适合整个面板之前,先进行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"); } } } 。我通过在使按钮形状正确之后添加所有.removeAll();的按钮来解决此问题。

1 个答案:

答案 0 :(得分:0)

我的问题的答案是GridLayout。 它将我的按钮放在所需的网格中。

将网格放置在底部的解决方案是因为当我将网格添加到布局中时,它包含许多设置为.setvisible(false);的按钮,因此我将其添加到布局中是一个简单的错误,因此程序将其放置在所有按钮之后。这是通过简单的.removeAll();删除了存储在其中的所有JComponent来解决的。

注意,我将所有的JComponents存储在JButton数组中,因为我只有按钮,后来通过该数组进行了for循环运行,检查它是否可见以及是否被添加到网格。