Нужно создать форму регистрации, чисто визуально, и я не знаю как выровнять ее элементы. Располагаться они должны так: название поля - рядом само поле, и так в каждой строке код:
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
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Подскажите библиотеку на Jave для нажатия кнопки или клик в окнеНапример имеется калькулятор,и необходимо нажать кнопку 1 и кликнуть на плюс
Компилятор не жалуется абсолютно, но все же интересно
На JAVA написан школьный журнал там есть фио, дата, предмет, оценкаВсе данные от берет базы данных SQL, но только дату он не так отображает вообще...