java - 如何在GridLayout中对齐复选框?

标签 java swing layout alignment jcheckbox

我需要在GUI中对齐复选框,但是在查找正确的命令或方法时遇到了麻烦。我写了一个简短的示例,它更易于阅读:

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(),但是都没有用。我希望所有框在其标签的右侧垂直对齐。

最佳答案

停止添加所有这些面板。使用一个面板,然后将复选框添加到该面板,然后在该面板上设置对齐方式。我已经修改了您的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]);
    }

}

关于java - 如何在GridLayout中对齐复选框?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19099006/

相关文章:

java - 如何从另一个线程更新 JList?

wpf - 文本框不会拉伸(stretch)以填充 View 框

android - 在Android上使用XML

java - 遍历循环并跳过Java中的特定索引点

java - jersey 2.6 jackson 2.3 和 map 中的复杂键

Java Swing : cannot spread components in whole JPanel with GridBagLayout

jsf - 自定义 h :selectOneRadio with other components 的布局和标签

java - 如何使用一个ajax请求从java servlet返回多个json对象

java - 任何用于最大字符串输入长度的内存使用优化的好技术

java - 如何让我的每个切换按钮执行不同的操作?