重新设计注册方法,让用户在新的对话框中填写用户名和密码,并确保用户名唯一。可以按照以下步骤进行:
1. 创建一个新的对话框窗口,用于用户输入用户名和密码。
2. 在对话框中添加文本框和密码框,用于接收用户输入。
3. 添加确认按钮,当用户点击确认按钮时,获取用户名和密码。
4. 在注册方法中调用对话框来获取用户输入的用户名和密码。
5. 在注册方法中,使用checkNameExist()方法来检查用户名是否已存在。
6. 若用户名不存在,则调用createTeacherAccount()方法来注册用户。
下面是具体实现的代码:
public void register() {
// 创建对话框窗口
Dialog<Pair<String, String>> dialog = new Dialog<>();
dialog.setTitle("注册用户");
dialog.setHeaderText(null);
// 设置对话框按钮
ButtonType registerButtonType = new ButtonType("注册", ButtonBar.ButtonData.OK_DONE);
dialog.getDialogPane().getButtonTypes().addAll(registerButtonType, ButtonType.CANCEL);
// 创建布局面板
GridPane gridPane = new GridPane();
gridPane.setHgap(10);
gridPane.setVgap(10);
gridPane.setPadding(new Insets(20, 150, 10, 10));
// 创建用户名输入框和标签
TextField usernameField = new TextField();
usernameField.setPromptText("请输入用户名");
PasswordField passwordField = new PasswordField();
passwordField.setPromptText("请输入密码");
// 将输入框和标签添加到布局面板中
gridPane.add(new Label("用户名:"), 0, 0);
gridPane.add(usernameField, 1, 0);
gridPane.add(new Label("密码:"), 0, 1);
gridPane.add(passwordField, 1, 1);
dialog.getDialogPane().setContent(gridPane);
// 获取输入框的值
dialog.setResultConverter(dialogButton -> {
if (dialogButton == registerButtonType) {
return new Pair<>(usernameField.getText(), passwordField.getText());
}
return null;
});
// 显示对话框并等待用户输入
Optional<Pair<String, String>> result = dialog.showAndWait();
// 检查是否有输入
if (result.isPresent()) {
String account = result.get().getKey();
String password = result.get().getValue();
// 检查用户名是否已存在
if (checkNameExist(account)) {
Alert alert = new Alert(Alert.AlertType.ERROR);
alert.setTitle("错误");
alert.setHeaderText(null);
alert.setContentText("用户名已存在!");
alert.showAndWait();
return;
}
// 注册新用户
if (createTeacherAccount(account, password)) {
Alert alert = new Alert(Alert.AlertType.INFORMATION);
alert.setTitle("提示");
alert.setHeaderText(null);
alert.setContentText("注册成功!");
alert.showAndWait();
} else {
Alert alert = new Alert(Alert.AlertType.ERROR);
alert.setTitle("错误");
alert.setHeaderText(null);
alert.setContentText("注册失败!");
alert.showAndWait();
}
}
}
通过以上的代码修改后,当用户点击注册按钮时,会弹出一个新的对话框窗口,用户可以在该窗口中填写用户名和密码。然后,系统会检查用户名是否已存在,并根据结果进行相应的提示。如果用户名不存在,则会注册新用户并弹出注册成功的提示框。
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 |