2013-03-27 59 views
0

我有一個jFrame有標籤和兩個單選按鈕。使用彈簧佈局對於手GUI

我使用彈簧佈局,但我的第二個radioButton在左上角看到!

public class tester extends JFrame { 

public tester() { 
    add(create()); 
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    setSize(400, 500); 
    setVisible(true); 
} 

public JPanel create() { 
    JPanel panel = new JPanel(); 
    ButtonGroup group = new ButtonGroup(); 
    JRadioButton r1 = new JRadioButton("Yes"); 
    JRadioButton r2 = new JRadioButton("No"); 
    group.add(r1); 
    group.add(r2); 
    JLabel lable = new JLabel("Today is sunday?"); 
    panel.add(lable); 
//  panel.add(group);  // How add this? 

    panel.add(r1); 
    panel.add(r2); 

    JButton savebt= new JButton("Save"); 
    JButton cancelbt=new JButton("Cancell"); 
    panel.add(savebt); 
    panel.add(cancelbt); 

    panel.setLayout(new SpringLayout()); 
    SpringUtilities.makeCompactGrid(panel, 1, 3, 50, 100, 25, 50); 
    return panel; 
} 

public static void main(String[] args) { 
    SwingUtilities.invokeLater(new Runnable() { 
     @Override 
     public void run() { 
      new tester(); 
     } 
    }); 
} 
} 

現在這個例外發生:

Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: No such child: 5 

我想顯示下面的單選按鈕的路線我的兩個按鈕!

回答

3

有在面板的三個項目,所以列的數目應該是3:

SpringUtilities.makeCompactGrid(panel, 1, 3, 50, 100, 25, 50); 

// panel.add(基); //如何添加這個?

你不需要這個。 ButtonGroups不會被添加到面板。它們用於按鈕選擇管理,不顯示。

+0

好幫手,但現在我添加兩個按鈕,應該在該行的下方,並應該是相鄰的。 – Sajad 2013-03-28 11:43:10

+0

@ Sajjad- 2行和3列= 6個單元格。儘管你只添加了5個組件。您的網格中不能有空單元格。如果你這樣做會引發這個異常。在最後一個單元格中添加一個空的JLabel。 – whiskeyspider 2013-03-28 14:42:48

+0

很好的幫助,謝謝... – Sajad 2013-03-28 18:00:49