You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
PAIR/src/main/java/com/mathquiz/ui/LoginPanel.java

44 lines
1.3 KiB

package com.mathquiz.ui;
import com.mathquiz.model.User;
import javafx.geometry.Insets;
import javafx.scene.control.*;
import javafx.scene.layout.VBox;
public class LoginPanel extends VBox {
private final TextField emailField = new TextField();
private final PasswordField pwdField = new PasswordField();
public LoginPanel(MainWindow mainWindow) {
setPadding(new Insets(20));
setSpacing(10);
getChildren().addAll(
new Label("登录"),
new Label("邮箱:"),
emailField,
new Label("密码:"),
pwdField,
new Button("登录") {{
setOnAction(e -> loginAction(mainWindow));
}},
new Hyperlink("没有账号?去注册") {{
setOnAction(e -> mainWindow.showRegisterPanel());
}}
);
}
private void loginAction(MainWindow mainWindow) {
String email = emailField.getText().trim();
String password = pwdField.getText();
User user = mainWindow.getUserService().login(email, password);
if (user != null) {
mainWindow.setCurrentUser(user);
mainWindow.showGradeSelectPanel();
} else {
new Alert(Alert.AlertType.ERROR, "邮箱或密码错误").showAndWait();
}
}
}