有没有办法在gridlayout中添加元素,将它们水平而不是垂直添加?基本上我想在元素开始之前用元素填充整行。
希望我明白我的问题。
答案 0 :(得分:6)
答案 1 :(得分:2)
我建议GridBagLayout和GridBagConstraints
它很像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);
答案 2 :(得分:0)
GridLayout,顾名思义根据您在constructor中指定的列数和行数来布局组件,并在添加指定数量的组件后立即移至下一行。
从您的问题来看,似乎FlowLayout更符合您的要求。
修改:我不确定原因,但是如果您将行数指定为0(例如new GridLayout(0, 9)
,则它似乎正常工作。
答案 3 :(得分:0)
我假设您打算在移动到下一列之前填写列中的所有行。如果是这样,那么使用自定义布局管理器
答案 4 :(得分:0)
实际上你应该使用GroupLayout它是新的(自jdk 1.6以来)并且非常棒。它为您提供了大量的布局灵活性。