Java - 如何让组件水平居中,垂直堆叠?
Java - How to center components horizontally, and stack them vertically?
我正在编写一个应用程序,它将获取用户信息,例如姓名、电子邮件、密码。为了获取用户信息,我正在使用 JTextFields。我想让所有组件垂直和水平地位于屏幕中央,并且还让组件一个接一个地堆叠在一起,如下所示:Expected Design
就像您在网站上看到的那样。目前我在 JFrame 中使用 JPanel,JPanel 有一个带有 BoxLayout.Y_AXIS 的 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 扩展布局”和“布局扩展 JPanel”。目前,我的程序代码如下所示:Current Design。如您所见,JTextField 与屏幕水平偏离中心,并且作为一个整体,它没有垂直居中。
如果有人能提供帮助,我将不胜感激。如果您需要更多详细信息,请告诉我。
可以通过多种方式对该布局进行编码。这是一种方式。
将 GUI 的各个部分分解为逻辑单元,'a column of text fields'、'an area for form controls' 等,然后为每个单元提供一个具有合适布局的容器。
在此 GUI 模型中:
- 紫色区域有边框布局,两个绿色区域出现在中心和页尾约束中。
- 顶部的第一个绿色区域将是一个网格包布局,用于居中(水平和垂直)..
- 文本字段的单列网格布局,橙色边框。
- 第二个绿色边框区域可以是另一个网格包布局,或者如果只需要水平居中,则可以是流式布局。
可以将合适的边框(例如,不可见的空边框)应用于白色容器 space。
我正在编写一个应用程序,它将获取用户信息,例如姓名、电子邮件、密码。为了获取用户信息,我正在使用 JTextFields。我想让所有组件垂直和水平地位于屏幕中央,并且还让组件一个接一个地堆叠在一起,如下所示:Expected Design
就像您在网站上看到的那样。目前我在 JFrame 中使用 JPanel,JPanel 有一个带有 BoxLayout.Y_AXIS 的 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 扩展布局”和“布局扩展 JPanel”。目前,我的程序代码如下所示:Current Design。如您所见,JTextField 与屏幕水平偏离中心,并且作为一个整体,它没有垂直居中。
如果有人能提供帮助,我将不胜感激。如果您需要更多详细信息,请告诉我。
可以通过多种方式对该布局进行编码。这是一种方式。
将 GUI 的各个部分分解为逻辑单元,'a column of text fields'、'an area for form controls' 等,然后为每个单元提供一个具有合适布局的容器。
在此 GUI 模型中:
- 紫色区域有边框布局,两个绿色区域出现在中心和页尾约束中。
- 顶部的第一个绿色区域将是一个网格包布局,用于居中(水平和垂直)..
- 文本字段的单列网格布局,橙色边框。
- 第二个绿色边框区域可以是另一个网格包布局,或者如果只需要水平居中,则可以是流式布局。
可以将合适的边框(例如,不可见的空边框)应用于白色容器 space。