2011-08-02 122 views
2

我的代码:如何在网格布局中设置按钮的位置?

public class Form { 
    public static void main(String[] args) { 
     Form form = new Form(); 
     form.go(); 
    } 

    public void go() { 
     JFrame form = new JFrame(); 
     GridLayout layout = new GridLayout(2,7); 
     Label nameLabel = new Label("Name"); 
     form.setLayout(layout); 
     JTextField nameBox = new JTextField(); 
     form.getContentPane().add(nameLabel); 
     form.getContentPane().add(nameBox); 
     form.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     form.setSize(500,500); 
     form.setVisible(true); 
    } 
} 

现在,我怎么可以设置JTextField的这个位置,以便其2,7和1,2不?

+1

用Java和Swing重新标记。 – rcv

回答

1

一个GridLayout将总是按照它们在容器中的顺序对容器的组件进行排序。除了在之前的所有地方插入虚拟组件之外,您不能将组件放置在特定位置。

您可能想尝试其他布局管理器。 GridBagLayout可以做到这一点,但使用起来相当复杂。

5

尝试增加空组件插入位置2,7之前,是这样的:

form.add(nameLabel); 
form.add(new JPanel()); 
form.add(new JPanel()); 
form.add(new JPanel()); 
form.add(new JPanel()); 
form.add(new JPanel()); 
form.add(new JPanel()); 
form.add(new JPanel()); 
form.add(new JPanel()); 
form.add(new JPanel()); 
form.add(new JPanel()); 
form.add(new JPanel()); 
form.add(new JPanel()); 
form.add(nameBox); 
+1

这是非可见JComponent的基本内容+1 – mKorbel