2011-08-02 159 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