diff --git a/src/controller/AppController.java b/src/controller/AppController.java index d9ec606..33da71f 100644 --- a/src/controller/AppController.java +++ b/src/controller/AppController.java @@ -104,4 +104,8 @@ public class AppController { JOptionPane.showMessageDialog(frame, "请输入有效的数字!"); } } + + public UserManager getUserManager() { + return userManager; + } } \ No newline at end of file diff --git a/src/controller/UserManager.java b/src/controller/UserManager.java index c0d819d..f5fd984 100644 --- a/src/controller/UserManager.java +++ b/src/controller/UserManager.java @@ -25,6 +25,14 @@ public class UserManager { return users.containsKey(email); } + public boolean isUsernameExists(String username) { + for (User user : users.values()) { + if (user.getUsername().equalsIgnoreCase(username)) { + return true; + } + } + return false; + } // 修改 addUser 方法,接收 username 参数 public void addUser(String email, String password, String username) { users.put(email, new User(email, password, username)); diff --git a/src/ui/RegisterPanel.java b/src/ui/RegisterPanel.java index 553b26f..a4d68d0 100644 --- a/src/ui/RegisterPanel.java +++ b/src/ui/RegisterPanel.java @@ -1,6 +1,7 @@ package ui; import controller.AppController; +import controller.UserManager; import util.EmailUtil; import javax.swing.*; @@ -109,7 +110,15 @@ public class RegisterPanel extends JPanel { JOptionPane.showMessageDialog(this, "密码需包含大小写字母与数字,长度6-10位!"); return; } - + //防止用户名重复 + if (controller.getUserManager().isUsernameExists(username)) { + JOptionPane.showMessageDialog(this, "用户名已存在,请更换!"); + return; + } + if (username.isEmpty() || password.isEmpty() || email.isEmpty() || code.isEmpty()) { + JOptionPane.showMessageDialog(this, "请填写完整信息!"); + return; + } controller.handleRegister(email, password, username); // 传递username });