Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/307.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java网格布局_Java_Grid Layout - Fatal编程技术网

Java网格布局

Java网格布局,java,grid-layout,Java,Grid Layout,有没有一种方法可以将元素添加到gridlayout中,使其水平添加而不是垂直添加?基本上我想在下一行开始之前用元素填充整行 希望我能把问题说清楚。也就是说。顾名思义,GridLayout根据您在中指定的列数和行数来布局组件,并在添加指定数量的组件后立即移动到下一行 从你的问题来看,a似乎更符合你的要求 编辑:我不确定原因,但如果您将行数指定为0(例如新的GridLayout(0,9),它似乎工作正常。我建议 它非常类似于GridLayout,但是通过GridBagConstraints,您可以指

有没有一种方法可以将元素添加到gridlayout中,使其水平添加而不是垂直添加?基本上我想在下一行开始之前用元素填充整行


希望我能把问题说清楚。

也就是说。

顾名思义,GridLayout根据您在中指定的列数和行数来布局组件,并在添加指定数量的组件后立即移动到下一行

从你的问题来看,a似乎更符合你的要求

编辑:我不确定原因,但如果您将行数指定为0(例如
新的GridLayout(0,9)
,它似乎工作正常。

我建议

它非常类似于GridLayout,但是通过GridBagConstraints,您可以指定组件的x和y坐标,并且可以进行列和行跨距

它看起来像这样:

import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;

GridBagLayout layout = new GridBagLayout();
GridBagConstraints c = new GridBagConstraints();

JPanel panel = new JPanel();
JLabel label = new JLabel("foo");

panel.setLayout(layout);

c.gridx = 0;
c.gridy = 0;
panel.add(label, c);

我假设您的意思是,在移动到下一列之前,希望填充列中的所有行。如果是这样,请使用自定义布局管理器


实际上,您应该使用它是新的(自jdk 1.6以来)非常棒。它在布局上给了你很大的灵活性。

好吧,我尝试在9x9网格布局中添加5个texfield,这些texfield相互重叠,而不是并排。所以它先填充一个列,然后再移动到下一个列,我想要的是先填充行:d这看起来很有用。x和y是不是单元格在“表”中的位置是的,这是单元格的坐标,而不是容器的像素坐标。工作起来很有魅力。我有一个for循环,在添加每个元素之前我设置了x和y。非常感谢!这就是GridLayout的工作方式。每一列在下一行开始之前都被填满。当然,除非你指定了一列,在这种情况下,所有组件被添加到另一个组件下面。如果需要更多帮助,请发布SSCCE。()