以下是示例:
help = new JButton("Help");
setLayout(new GridBagLayout());
GridBagConstraints c = new GridBagConstraints();
c.gridx = 50;
c.gridy = 50;
add(help,c);
我可能理解这个错误(我从youtube
上的一些教程中得到了这个概念),我似乎无法将“帮助”按钮放到需要它的位置。无论我将gridx
或gridy
更改为什么,按钮始终位于中间。如果这部分代码还不够,请告诉我,我可以发布整个内容,但我认为这应该足够了。
答案 0 :(得分:3)
让我解释一下GridbagLayout(大大简化)。
想想棋盘,你有8列8行= 64个单元格。在每个单元格中,您可以放置一个ui元素,就像按钮一样。现在,如果您设置gridx = 3和gridy = 1,则会将按钮放在棋盘上第4行的第2列。
事情是:与棋盘不同,你的细胞不具有相同的高度或宽度。如果在第3列中放置一个大元素,则整个列将更大。如果第一列中没有元素(就像在这种情况下那样),它的宽度将为0.所以你可以将gridx设置为50或者其他任何东西,如果之前的所有列都不包含元素,那么你的按钮仍然是第一个元素在左侧
尝试c.anchor = GridBagConstraints.CENTER;
答案 1 :(得分:-2)
上面的代码真的不足以查看正在发生的事情。如果您正在使用Eclipse IDE,我建议您使用GUI安装WindowBuilder插件来修复您的布局。它更容易:)