java-如何水平居中组件,并垂直堆叠它们?

pgccezyw  于 2021-07-06  发布在  Java
关注(0)|答案(1)|浏览(488)

我正在写一个应用程序,将采取用户信息,如姓名,电子邮件,密码。为了获得用户信息,我使用jtextfields。我想让所有的组件在屏幕的中心垂直和水平,也有一个又一个组件堆叠在一起像这样:预期的设计
就像你在网站上看到的那样。目前我在jframe中使用一个jpanel,这个jpanel有一个boxlayout.y\u轴的boxlayout。这是我的密码:

public class RegisterLayout extends Layout {

    @Override
    public void init() {
        this.setBackground(Utilities.babyBlueish);
        this.setBorder(BorderFactory.createTitledBorder("Register Now!"));
        this.setLayout(new BoxLayout(this, BoxLayout.Y_AXIS));
    }

    @Override
    public void addComponents() {

        JTextField fName = new JTextField("Enter Your Full Name");
        fName = Utilities.designTextField(fName);

        JButton submit = new JButton("Submit");
        submit = Utilities.designButton(submit);
        submit.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent arg0) {

            }

        });

        this.add(fName);
        this.add(submit);
    }

}

将jpanel添加到jframe的内容窗格时,将同时调用init()和addcomponents()registerlayout extends layout”和“layout extends jpanel”。目前的代码,我有我的程序看起来像这样:目前的设计。如您所见,jtextfield与屏幕水平偏离中心,而作为一个整体,它没有垂直居中。
如果有人能帮忙,我将不胜感激。如果你需要更多的细节请告诉我。

pdtvr36n

pdtvr36n1#

这个布局有多种编码方式。这是一种方法。
将gui的各个部分分成逻辑单元、“一列文本字段”、“一个窗体控件区域”等,然后为每个单元提供一个具有适当布局的容器。

在这个gui模型中:
紫色区域有一个边框布局,两个绿色区域出现在中间和页尾约束中。
在顶部的第一个绿色区域将是一个网格袋布局,以中心(水平和垂直)的。。
文本字段的单列网格布局,橙色边框。
第二个绿色边界区域可以是另一个网格袋布局,或者如果只需要水平居中,则为流动布局。
适当的边框(例如不可见的空边框)可应用于空白区域的容器。

相关问题