Нужно создать форму регистрации, чисто визуально, и я не знаю как выровнять ее элементы. Располагаться они должны так: название поля - рядом само поле, и так в каждой строке код:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
class Registration extends JDialog {
private final JLabel label1 = new JLabel("Ф.И.О: ");
private final JLabel label2 = new JLabel("Адрес: ");
private final JLabel label3 = new JLabel("Город: ");
private final JLabel label4 = new JLabel("Почтовый индекс: ");
private final JLabel label5 = new JLabel("Телефон: ");
private final JLabel label6 = new JLabel("Дополнительная информация: ");
private final JLabel label7 = new JLabel("E-mail: ");
private final JLabel label8 = new JLabel("Пароль: ");
private final JLabel label9 = new JLabel("Повторите пароль: ");
private final JTextField field1 = new JTextField(40);
private final JTextField field2 = new JTextField(40);
private final JTextField field3 = new JTextField(40);
private final JTextField field4 = new JTextField(40);
private final JTextField field5 = new JTextField(40);
private final JTextField field6 = new JTextField(40);
private final JTextArea text = new JTextArea();
private final JPasswordField password1 = new JPasswordField();
private final JPasswordField password2 = new JPasswordField();
private final Checkbox checkBox = new Checkbox("Я хочу получать новости и спецпредложения");
public Registration() {
JFrame frame = new JFrame();
frame.setSize(700, 700);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
JPanel grid = new JPanel();
grid.setLayout(new BoxLayout(grid, BoxLayout.PAGE_AXIS));
grid.add(label1);
grid.add(field1);
grid.add(label2);
grid.add(field2);
grid.add(label3);
grid.add(field3);
grid.add(label4);
grid.add(field4);
grid.add(label5);
grid.add(field5);
grid.add(label6);
grid.add(text);
grid.add(label7);
grid.add(field6);
grid.add(label8);
grid.add(password1);
grid.add(label9);
grid.add(password2);
//grid.add(checkBox);
frame.add(grid);
}
}
public class FlowLayoutTest {
public static void main(String[] args) {
Registration forma = new Registration();
}
}
и да, выравнивание PAGE_AXIS, которое я использовала, работает не так, как мне нужно
Попробуйте использовать GridLayout
class Registration extends JDialog {
private final JLabel lblFIO = new JLabel("Ф.И.О: ");
private final JLabel lblAddress = new JLabel("Адрес: ");
private final JLabel lblCity = new JLabel("Город: ");
private final JLabel lblMailIndex = new JLabel("Почтовый индекс: ");
private final JLabel lblPhone = new JLabel("Телефон: ");
private final JLabel lblAdditionalInfo = new JLabel("Дополнительная информация: ");
private final JLabel lblEmail = new JLabel("E-mail: ");
private final JLabel lblPassword = new JLabel("Пароль: ");
private final JLabel lblConfirmPassword = new JLabel("Повторите пароль: ");
private final JTextField fldFIO = new JTextField(40);
private final JTextField fldAddress = new JTextField(40);
private final JTextField fldCity = new JTextField(40);
private final JTextField fldMailIndex = new JTextField(40);
private final JTextField fldPhone = new JTextField(40);
private final JTextArea textAdditionalInfo = new JTextArea();
private final JTextField fldEmail = new JTextField(40);
private final JPasswordField password1 = new JPasswordField();
private final JPasswordField password2 = new JPasswordField();
private final Checkbox checkBox = new Checkbox("Я хочу получать новости и спецпредложения");
public Registration() {
JFrame frame = new JFrame();
frame.setSize(570, 300);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel grid = new JPanel(new GridLayout(9,2,5,5));
Dimension lblDim = new Dimension(200,21);
lblFIO.setMaximumSize(lblDim);
lblAddress.setMaximumSize(lblDim);
lblCity.setMaximumSize(lblDim);
lblMailIndex.setMaximumSize(lblDim);
lblPhone.setMaximumSize(lblDim);
lblAdditionalInfo.setMaximumSize(lblDim);
lblEmail.setMaximumSize(lblDim);
lblPassword.setMaximumSize(lblDim);
lblConfirmPassword.setMaximumSize(lblDim);
Dimension fldDim = new Dimension(200,21);
fldFIO.setMaximumSize(fldDim);
fldAddress.setMaximumSize(fldDim);
fldCity.setMaximumSize(fldDim);
fldMailIndex.setMaximumSize(fldDim);
fldPhone.setMaximumSize(fldDim);
textAdditionalInfo.setMaximumSize(new Dimension(200,100));
fldEmail.setMaximumSize(fldDim);
password1.setMaximumSize(fldDim);
password2.setMaximumSize(fldDim);
grid.add(lblFIO);
grid.add(fldFIO);
grid.add(lblAddress);
grid.add(fldAddress);
grid.add(lblCity);
grid.add(fldCity);
grid.add(lblMailIndex);
grid.add(fldMailIndex);
grid.add(lblPhone);
grid.add(fldPhone);
grid.add(lblAdditionalInfo);
grid.add(new JScrollPane(textAdditionalInfo,ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS, ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER));
grid.add(lblEmail);
grid.add(fldEmail);
grid.add(lblPassword);
grid.add(password1);
grid.add(lblConfirmPassword);
grid.add(password2);
//grid.add(checkBox);
frame.add(grid);
frame.setVisible(true);
}}
Oracle: How to Use GridLayout
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости