diff --git a/src/main/java/com/mathapp/MathApp.java b/src/main/java/com/mathapp/MathApp.java index 2a06786..42bc156 100644 --- a/src/main/java/com/mathapp/MathApp.java +++ b/src/main/java/com/mathapp/MathApp.java @@ -25,6 +25,11 @@ public class MathApp extends JFrame { public static final String RESULTS_PANEL = "ResultsPanel"; public static final String CHANGE_PASSWORD_PANEL = "ChangePasswordPanel"; + private LoginPanel loginPanel; + private RegisterPanel registerPanel; + private MainMenuPanel mainMenuPanel; + private ChangePasswordPanel changePasswordPanel; + public MathApp() { initUI(); } @@ -39,11 +44,16 @@ public class MathApp extends JFrame { cardLayout = new CardLayout(); mainPanel = new JPanel(cardLayout); + loginPanel = new LoginPanel(this); + registerPanel = new RegisterPanel(this); + mainMenuPanel = new MainMenuPanel(this); + changePasswordPanel = new ChangePasswordPanel(this); + // 添加所有静态面板 - mainPanel.add(new LoginPanel(this), LOGIN_PANEL); - mainPanel.add(new RegisterPanel(this), REGISTER_PANEL); - mainPanel.add(new MainMenuPanel(this), MAIN_MENU_PANEL); - mainPanel.add(new ChangePasswordPanel(this), CHANGE_PASSWORD_PANEL); + mainPanel.add(loginPanel, LOGIN_PANEL); + mainPanel.add(registerPanel, REGISTER_PANEL); + mainPanel.add(mainMenuPanel, MAIN_MENU_PANEL); + mainPanel.add(changePasswordPanel, CHANGE_PASSWORD_PANEL); add(mainPanel); } @@ -53,6 +63,23 @@ public class MathApp extends JFrame { * @param panelName 要显示的面板名称 */ public void showPanel(String panelName) { + switch (panelName) { + case LOGIN_PANEL: + loginPanel.resetPanel(); + break; + case REGISTER_PANEL: + registerPanel.resetPanel(); + break; + case MAIN_MENU_PANEL : + mainMenuPanel.resetPanel(); + break; + case CHANGE_PASSWORD_PANEL : + changePasswordPanel.resetPanel(); + break; + default: + break; + } + cardLayout.show(mainPanel, panelName); } diff --git a/src/main/java/com/mathapp/panels/ChangePasswordPanel.java b/src/main/java/com/mathapp/panels/ChangePasswordPanel.java index bf856fc..4158f19 100644 --- a/src/main/java/com/mathapp/panels/ChangePasswordPanel.java +++ b/src/main/java/com/mathapp/panels/ChangePasswordPanel.java @@ -82,6 +82,12 @@ public class ChangePasswordPanel extends JPanel { backButton.addActionListener(e -> app.showPanel(MathApp.MAIN_MENU_PANEL)); } + public void resetPanel() { + oldPasswordField.setText(""); + newPasswordField.setText(""); + confirmNewPasswordField.setText(""); + } + private void handleChangePassword() { String email = app.getCurrentUserEmail(); if (email == null) { diff --git a/src/main/java/com/mathapp/panels/LoginPanel.java b/src/main/java/com/mathapp/panels/LoginPanel.java index 683c558..e7dd756 100644 --- a/src/main/java/com/mathapp/panels/LoginPanel.java +++ b/src/main/java/com/mathapp/panels/LoginPanel.java @@ -73,6 +73,11 @@ public class LoginPanel extends JPanel { registerButton.addActionListener(e -> app.showPanel(MathApp.REGISTER_PANEL)); } + public void resetPanel() { + emailField.setText(""); + passwordField.setText(""); + } + private void handleLogin() { String email = emailField.getText().trim(); String password = new String(passwordField.getPassword()); @@ -83,7 +88,7 @@ public class LoginPanel extends JPanel { } User user = DataPersistence.findUserByEmail(email); - if (user != null && user.verifyPassword(password)||true) { + if (user != null && user.verifyPassword(password)) { app.setCurrentUserEmail(email); app.showPanel(MathApp.MAIN_MENU_PANEL); } else { diff --git a/src/main/java/com/mathapp/panels/MainMenuPanel.java b/src/main/java/com/mathapp/panels/MainMenuPanel.java index 6957bdd..3afece3 100644 --- a/src/main/java/com/mathapp/panels/MainMenuPanel.java +++ b/src/main/java/com/mathapp/panels/MainMenuPanel.java @@ -80,6 +80,11 @@ public class MainMenuPanel extends JPanel { changePasswordButton.addActionListener(e -> app.showPanel(MathApp.CHANGE_PASSWORD_PANEL)); } + public void resetPanel() { + levelGroup.clearSelection(); + questionCountField.setText("10"); + } + private void handleStart() { String level = levelGroup.getSelection().getActionCommand(); int count; diff --git a/src/main/java/com/mathapp/panels/RegisterPanel.java b/src/main/java/com/mathapp/panels/RegisterPanel.java index 723edbf..d82262a 100644 --- a/src/main/java/com/mathapp/panels/RegisterPanel.java +++ b/src/main/java/com/mathapp/panels/RegisterPanel.java @@ -77,7 +77,7 @@ public class RegisterPanel extends JPanel { backButton.addActionListener(e -> app.showPanel(MathApp.LOGIN_PANEL)); } - private void resetPanel() { + public void resetPanel() { emailField.setText(""); codeField.setText(""); @@ -151,9 +151,6 @@ public class RegisterPanel extends JPanel { // 验证成功,跳转到设置密码页面 app.showSetPasswordPanel(emailField.getText().trim()); - - // 跳转设置密码页面前重置注册面板状态 - resetPanel(); } private void startCooldownTimer() {