package ui;
import dao.UserDAO;
import model.User;
import javax.swing.*;
import java.awt.*;
public class LoginFrame extends JFrame {
private JTextField usernameField;
private JPasswordField passwordField;
private UserDAO userDAO = new UserDAO();
public LoginFrame() {
setTitle("Вход");
setSize(350, 220);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setLocationRelativeTo(null);
setLayout(new GridBagLayout());
GridBagConstraints gbc = new GridBagConstraints();
gbc.insets = new Insets(5, 5, 5, 5);
gbc.fill = GridBagConstraints.HORIZONTAL;
// Логин
gbc.gridx = 0; gbc.gridy = 0;
add(new JLabel("Логин:"), gbc);
gbc.gridx = 1;
usernameField = new JTextField(15);
add(usernameField, gbc);
// Пароль
gbc.gridx = 0; gbc.gridy = 1;
add(new JLabel("Пароль:"), gbc);
gbc.gridx = 1;
passwordField = new JPasswordField(15);
add(passwordField, gbc);
// Кнопка входа
gbc.gridx = 0; gbc.gridy = 2;
gbc.gridwidth = 2;
JButton loginBtn = new JButton("Войти");
add(loginBtn, gbc);
// Кнопка регистрации
gbc.gridy = 3;
JButton registerBtn = new JButton("Регистрация");
add(registerBtn, gbc);
loginBtn.addActionListener(e -> doLogin());
registerBtn.addActionListener(e -> {
new RegisterFrame().setVisible(true);
dispose();
});
// Enter для входа
getRootPane().setDefaultButton(loginBtn);
}
private void doLogin() {
String username = usernameField.getText().trim();
String password = new String(passwordField.getPassword());
if (username.isEmpty() || password.isEmpty()) {
JOptionPane.showMessageDialog(this, "Заполните все поля!");
return;
}
User user = userDAO.login(username, password);
if (user != null) {
JOptionPane.showMessageDialog(this, "Добро пожаловать, " + user.getUsername() + "!");
// Здесь можно открыть главное окно приложения
// new MainFrame(user).setVisible(true);
// dispose();
} else {
JOptionPane.showMessageDialog(this, "Неверный логин или пароль!",
"Ошибка", JOptionPane.ERROR_MESSAGE);
}
}
}