使用GroupLayout

时间:2017-09-12 20:32:59

标签: java swing jlabel layout-manager grouplayout

我想将几个复选框组合在一起并在其上方放置一些文本(将其想象成一个表格中的部分,其中描述了该部分表格的内容以及一系列检查 - 框)

参见附图,了解视觉表现:

https://i.stack.imgur.com/iHELj.jpg

我的目标是将“杂项”这个词集中在一起。所以它位于中心而不是最左边。

我试过改变JLabel的水平对齐方式,如下所示:

miscellaneous = new JLabel("Miscellaneous");
miscellaneous.setHorizontalAlignment(JLabel.CENTER);

但它似乎没有帮助。 我也试过这个:

miscellaneous = new JLabel("Miscellaneous", SwingConstants.CENTER);

再次没有成功。

以下是生成上述附图的完整代码片段:

    miscellaneous = new JLabel("Miscellaneous");
    movement = new JCheckBox("Movement");
    consumables = new JCheckBox("Consumables");
    layoutM = new GroupLayout(miscGroup);
    miscGroup.setLayout(layoutM);

    layoutM.setAutoCreateGaps(true);
    layoutM.setAutoCreateContainerGaps(true);

    layoutM.setHorizontalGroup(layoutM.createSequentialGroup()
             .addGroup(layoutM.createParallelGroup(GroupLayout.Alignment.LEADING)
                 .addComponent(miscellaneous)
                 .addGroup(layoutM.createSequentialGroup()
                      .addGroup(layoutM.createParallelGroup(GroupLayout.Alignment.LEADING)
                              .addComponent(movement))
                      .addGroup(layoutM.createParallelGroup(GroupLayout.Alignment.LEADING)
                              .addComponent(consumables))))
            );

    layoutM.setVerticalGroup(layoutM.createSequentialGroup()
            .addGroup(layoutM.createParallelGroup(GroupLayout.Alignment.BASELINE)
                .addComponent(miscellaneous))
                .addGroup(layoutM.createParallelGroup(GroupLayout.Alignment.LEADING)
                        .addGroup(layoutM.createSequentialGroup()
                                .addGroup(layoutM.createParallelGroup(GroupLayout.Alignment.BASELINE)
                                        .addComponent(movement)
                                        .addComponent(consumables))))
            );

任何帮助/提示都将不胜感激,谢谢。

0 个答案:

没有答案