修复进入各页面时显示退出时信息的bug

lianghao_branch
梁浩 4 months ago
parent aa6b8e9f6e
commit 322897aa5d

@ -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);
}

@ -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) {

@ -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 {

@ -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;

@ -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() {

Loading…
Cancel
Save