组件对齐 java

Component alignment java

我正在 java 学习 GUI,我遇到了组件对齐问题。 我正在使用具有 3 个水平框的垂直框。 我想让拳头和第三个盒子在中间对齐,第二个盒子在左边对齐。 这是代码。

   public class KopjoFushen extends JFrame
   {
    private JTextField text;
    private JTextField text2;
    public KopjoFushen()

    {
    super("Kopjo fushen");

    JLabel label=new JLabel();
    label.setText("Fusha1");
    text =new JTextField(10);
    Box siper=Box.createHorizontalBox();
    siper.add(label);
    siper.add(text);
    text2 =new JTextField(60);
    text2.setEditable(false);
    text2.setText("Fusha e pandryshueshme");
    Box mes=Box.createHorizontalBox();
    mes.add(text2);
    JButton buton=new JButton("Kopjo fushen e lire");
    buton.addActionListener(new ButonHandler());
    Box poshte=Box.createHorizontalBox();
    poshte.add(buton);
    Box total=Box.createVerticalBox();
    total.add(siper);
    siper.setAlignmentX(Component.CENTER_ALIGNMENT);
    mes.setAlignmentX(Component.RIGHT_ALIGNMENT);
    total.setAlignmentX(Component.CENTER_ALIGNMENT);
    total.add(mes);
    total.add(poshte);
    setLayout(new FlowLayout());
    add(total);
  }

第一个问题是第一个框都左对齐。 第二个问题是,如果我在第二个 JTextField 的构造函数中使用更大的数字,第一个 JTextField 会变大。 这是我想要实现的目标 http://prntscr.com/e8utum 这是我所做的:http://prntscr.com/e8uusn

第一个Box实际上是居中的。它似乎向左对齐,因为它已调整大小以适应父面板。

事实上,如果您设置 JTextField maximumSize,您会注意到它居中

 text.setMaximumSize(new Dimension(300, Integer.MAX_VALUE));