diff --git a/src/MainFrame.java b/src/MainFrame.java index 2367b32..954230d 100644 --- a/src/MainFrame.java +++ b/src/MainFrame.java @@ -180,6 +180,12 @@ public class MainFrame extends JFrame { changePasswordButton.addActionListener(e -> showPasswordChangePanel()); bottomPanel.add(changePasswordButton); + // 新增:删除账号按钮 + JButton deleteAccountButton = createStyledButton("删除账号"); + deleteAccountButton.setBackground(new Color(220, 20, 60)); // 红色背景提示危险操作 + deleteAccountButton.addActionListener(e -> deleteAccount()); + bottomPanel.add(deleteAccountButton); + JButton logoutButton = createStyledButton("退出登录"); logoutButton.addActionListener(e -> logout()); bottomPanel.add(logoutButton); @@ -188,6 +194,43 @@ public class MainFrame extends JFrame { mainPanel.add(panel, "GradeSelection"); } + // 新增:删除当前账号功能 + private void deleteAccount() { + // 简单确认对话框 + int result = JOptionPane.showConfirmDialog( + this, + "确定要删除当前账号吗?\n用户名:" + currentUserId + "\n此操作不可恢复!", + "确认删除账号", + JOptionPane.YES_NO_OPTION, + JOptionPane.WARNING_MESSAGE + ); + + if (result == JOptionPane.YES_OPTION) { + // 直接使用当前用户名作为邮箱(根据您的系统设计,用户名可能就是邮箱) + // 或者让用户输入邮箱确认 + String userEmail = JOptionPane.showInputDialog( + this, + "请输入您的邮箱进行确认:", + "确认删除", + JOptionPane.QUESTION_MESSAGE + ); + + if (userEmail != null && !userEmail.trim().isEmpty()) { + // 调用User_service的Unregister函数删除账号 + String deleteResult = userService.Unregister(userEmail.trim()); + + if (deleteResult.equals("删除成功")) { + JOptionPane.showMessageDialog(this, "账号删除成功!"); + // 清除当前用户信息并返回登录界面 + currentUserId = null; + examService = null; + showLoginPanel(); + } else { + JOptionPane.showMessageDialog(this, "删除失败:" + deleteResult); + } + } + } + } private void createExamPanel() { JPanel panel = new JPanel(new BorderLayout(10, 10));