2013-09-30 64 views
0

我需要對齊我的GUI中的複選框,但我無法找到正確的命令或方法。我寫了一個簡單的例子是簡單閱讀:如何對齊GridLayout中的複選框?

public class GUI { 

JFrame window = new JFrame(); 
JPanel mainPanel = new JPanel(); 
JPanel[] rowPanel = new JPanel[5]; 
JCheckBox[] check = new JCheckBox[5]; 

public GUI() { 
     window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     window.setExtendedState(window.MAXIMIZED_BOTH); 
     window.setVisible(true); 
     window.add(mainPanel); 
     mainPanel.setLayout(new GridLayout(5, 1)); 

     for(int i = 0; i < 5; i++) 
     { 
     rowPanel[i] = new JPanel(); 
     mainPanel.add(rowPanel[i]); 
     } 

     check[0] = new JCheckBox("red"); 
     check[1] = new JCheckBox("violet"); 
     check[2] = new JCheckBox("pink"); 
     check[3] = new JCheckBox("magenta"); 
     check[4] = new JCheckBox("every color"); 

     for(int i = 0; i < 5; i++) 
     { 
      rowPanel[i].add(check[i]); 
     } 
    } 
} 

我試圖.setHorizontalTextPosition().setHorizontalAlignment(),但也有工作。我希望所有的盒子在標籤的右側垂直對齊。

回答

3

停止添加所有這些面板。使用一個面板,並將復​​選框添加到該面板,並在該面板上設置對齊。我修改了你的GUI構造函數。

public GUI() { 

    window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    window.setExtendedState(window.MAXIMIZED_BOTH); 
    window.setVisible(true); 
    window.add(mainPanel); 
    mainPanel.setLayout(new GridLayout(5, 1)); 
    mainPanel.setAlignmentY(JComponent.LEFT_ALIGNMENT); 

    check[0] = new JCheckBox("red"); 
    check[1] = new JCheckBox("violet"); 
    check[2] = new JCheckBox("pink"); 
    check[3] = new JCheckBox("magenta"); 
    check[4] = new JCheckBox("every color"); 

    for (int i = 0; i < 5; i++) { 
     mainPanel.add(check[i]); 
    } 

} 
+0

謝謝!我不知道我先不需要面板。 – Yoshimi