【发布时间】:2014-10-26 21:44:54
【问题描述】:
我正在与GridBagLayout 合作,但我不明白为什么JCheckBox 不对齐。我试图将对齐设置为JCheckBox 参数(即checkBox.setAlignementX(LEFT_ALIGNEMENT))。它没有用。
我第一次尝试使用BorderLayout,但结果更糟
我想要实现的是这个
我希望将三个主要类别(体格、心理和社交)设置在完整的左侧,并且我希望将子类别设置为稍微偏移。这样你就会知道它是一个子类别(根据我画的线)。
共有三个JPanel,每个类别一个。
这不是原始代码,但它在某种程度上重现了我遇到的问题。
public class Window extends JFrame {
private JButton button = new JButton("Generer");
private JCheckBox physique = new JCheckBox("Traits Physiques");
private JCheckBox psychologic = new JCheckBox("Traits Psychologiques");
private JCheckBox mass = new JCheckBox("Masse");
private JCheckBox quality = new JCheckBox("Qualité");
private JTextArea text = new JTextArea("");
private JScrollPane scroller = new JScrollPane(text);
private JPanel panel = new JPanel();
public Window() {
setLayout(new BorderLayout());
setTitle("Personnage");
setSize(500, 350);
setResizable(false);
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
setLocationRelativeTo(null);
text.setEditable(false);
arrange();
getContentPane().add(panel, BorderLayout.WEST);
getContentPane().add(scroller, BorderLayout.CENTER);
getContentPane().add(button, BorderLayout.SOUTH);
setVisible(true);
}
/**
* Arrange all the layout
*/
private void arrange() {
JPanel phPanel = new JPanel();
JPanel psPanel = new JPanel();
GridBagConstraints gbcPanel, gbcPh, gbcPs;
gbcPanel = gbcPh = gbcPs = new GridBagConstraints();
panel.setLayout(new GridBagLayout());
gbcPanel.gridx = 0;
gbcPanel.gridy = 0;
gbcPanel.gridheight = 1;
gbcPanel.gridwidth = 1;
panel.add(phPanel, gbcPanel);
gbcPanel.gridy = 1;
panel.add(psPanel, gbcPanel);
//---------------------------
gbcPh.gridx = 0;
gbcPh.gridy = 0;
gbcPh.gridheight = 1;
gbcPh.gridwidth = 2;
phPanel.add(physique, gbcPh);
gbcPh.gridx = 1;
gbcPh.gridy = 1;
gbcPh.gridwidth = 1;
phPanel.add(mass, gbcPh);
//--------------------------
gbcPs.gridx = 0;
gbcPs.gridy = 0;
gbcPs.gridheight = 1;
gbcPs.gridwidth = 2;
psPanel.add(psychologic, gbcPs);
gbcPs.gridx = 1;
gbcPs.gridy = 1;
gbcPs.gridwidth = 1;
psPanel.add(quality, gbcPs);
//------------------------
}
}
我希望主要类别(即体格和心理)完全左对齐,而子类别(即质量和质量)稍微偏移。我做不到,我不知道怎么做,我已经阅读了多个教程等...
【问题讨论】:
-
我不确定您发布的代码和文本是否足以让我们充分理解您的问题来回答它。如果您没有很快得到合适的答案,请考虑创建并发布Minimal, Complete, and Verifiable Example Program。
-
感谢您的评论,我会尝试更好地解释我想要实现的目标。
-
@HovercraftFullOfEels 你去。解释得更好吗?
-
Chax,请查看我在第一条评论中提供的链接。请回复我,如果您发布您的MCVE,请告诉我,我会看一下。请记住,这个程序需要很短、非常短、可编译、可运行,不需要外部资源(除非它们很容易从互联网上获得)并向我们展示您的问题。祝你好运。
-
@HovercraftFullOfEels 你去。一个简化的代码,其中有我的问题。另外它是可编译的。
标签: java swing layout-manager gridbaglayout jcheckbox