// TAdminPanel.java package com.WR.StudentMS.view; import javax.swing.*; import com.WR.StudentMS.dao.mysql.TAdmindaoimplzh; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; public class TAdminPanel extends JPanel { private JTextField txtUserName; private JPasswordField txtOldPassword; private JPasswordField txtNewPassword; private JButton btnModify; private JButton btnReset; private TAdmindaoimplzh adminDao; // 数据访问对象 public TAdminPanel() { adminDao = new TAdmindaoimplzh(); // 初始化数据访问对象 // 设置面板布局 setLayout(new GridLayout(4, 2, 5, 5)); setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10)); // 初始化组件 txtUserName = new JTextField(20); txtOldPassword = new JPasswordField(20); txtNewPassword = new JPasswordField(20); btnModify = new JButton("修改"); btnReset = new JButton("重置"); // 添加组件到面板 add(new JLabel("用户名:")); add(txtUserName); add(new JLabel("原密码:")); add(txtOldPassword); add(new JLabel("新密码:")); add(txtNewPassword); add(btnModify); add(btnReset); // 为按钮添加事件监听器 btnModify.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { modifyPassword(); } }); btnReset.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { resetForm(); } }); } private void modifyPassword() { String userName = txtUserName.getText(); String oldPassword = new String(txtOldPassword.getPassword()); String newPassword = new String(txtNewPassword.getPassword()); if (adminDao.verifyCredentials(userName, oldPassword)) { // 如果凭证验证成功,调用 changePassword 方法更新密码 int result = adminDao.changePassword(userName, newPassword); if (result > 0) { JOptionPane.showMessageDialog(null, "密码修改成功!"); resetForm(); // 清空表单 } else { JOptionPane.showMessageDialog(null, "密码更新失败,请重试。"); } } else { // 如果凭证验证失败,显示错误信息并清空原密码输入框 showError("用户名或原密码错误!"); txtOldPassword.setText(""); // 清空原密码 } } private void resetForm() { txtUserName.setText(""); txtOldPassword.setText(""); txtNewPassword.setText(""); } private void showError(String message) { // 显示错误信息的方法,可能需要更新UI来显示红色提醒 JOptionPane.showMessageDialog(null, message); } }