Этот урок посвящен созданию приложения с графическим интерфейсом на Java, используя библиотеку Swing.
Выбор библиотеки
Для построения графических интерфейсов в Java доступны различные библиотеки. В этом уроке используется встроенная библиотека Java Swing. Хотя Swing не идеален, его преимущество — отсутствие необходимости в дополнительной установке. Для более сложных приложений рекомендуется JavaFX, позволяющая создавать кроссплатформенные приложения (Windows, macOS, Linux).
Создание и настройка приложения
Создадим класс ContactForm, наследующий JFrame:
public class ContactForm extends JFrame {
private JButton sendButton; // Добавим поле для кнопки
public ContactForm() {
super("Контактная форма"); // Заголовок окна
setBounds(200, 100, 250, 100); // Положение и размер окна (x, y, ширина, высота)
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // Закрытие приложения при закрытии окна
Container container = getContentPane(); // Получение контейнера для размещения компонентов
container.setLayout(new GridLayout(3, 2, 2, 2)); // Используем GridLayout с 3 рядами, 2 столбцами, отступами 2 пикселя
JLabel nameLabel = new JLabel("Введите имя:");
JTextField nameField = new JTextField(1); // 1 колонка
JLabel emailLabel = new JLabel("Введите email:");
JTextField emailField = new JTextField(1); // 1 колонка
JRadioButton male = new JRadioButton("Мужской", true);
JRadioButton female = new JRadioButton("Женский");
ButtonGroup group = new ButtonGroup();
group.add(male);
group.add(female);
JCheckBox checkBox = new JCheckBox("Согласен", false);
sendButton = new JButton("Отправить"); // Инициализируем кнопку
container.add(nameLabel);
container.add(nameField);
container.add(emailLabel);
container.add(emailField);
container.add(male);
container.add(female);
container.add(checkBox);
container.add(sendButton);
sendButton.addActionListener(new ButtonEventManger()); // Добавляем обработчик событий здесь
}
}
Метод setBounds задает положение и размер приложения. setDefaultCloseOperation определяет действие при закрытии окна (здесь — завершение приложения). getContentPane() возвращает контейнер для элементов интерфейса. GridLayout организует элементы в сетке, задавая количество рядов и столбцов, а также отступы.
Обработка событий
Вложенный класс обрабатывает нажатие кнопки:
private class ButtonEventManger implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
String name = nameField.getText();
String email = emailField.getText();
String gender = male.isSelected() ? "Мужской" : "Женский";
boolean checkBoxValue = checkBox.isSelected();
JOptionPane.showMessageDialog(null, "Привет, " + name + "!\nВаша почта: " + email + "\nВаш пол: " + gender + "\nВы согласны: " + checkBoxValue, "Приветствие", JOptionPane.PLAIN_MESSAGE);
}
}
Этот класс обрабатывает нажатие кнопки, извлекая значения из полей и выводя их в диалоговом окне JOptionPane.
Запуск приложения
Запуск осуществляется в методе main:
public static void main(String[] args) {
ContactForm form = new ContactForm();
form.setVisible(true);
}
setVisible(true) отображает окно.
Создано простое приложение на Java Swing, демонстрирующее основные элементы графического интерфейса и обработку событий. Для более сложных приложений рекомендуется использовать JavaFX.