📄 findpwdform.java
字号:
package qianqian.p2pchat.gui;
import qianqian.p2pchat.constant.Const;
import qianqian.p2pchat.control.Controller;
import qianqian.p2pchat.control.Peer;
import qianqian.p2pchat.message.UserMessage;
public class FindPwdForm extends javax.swing.JDialog {
private static final long serialVersionUID = 1L;
private static FindPwdForm findPwdForm;
private static int count = 0;
private boolean response = false;
private javax.swing.JButton btFind;
private javax.swing.JButton btCancel;
private javax.swing.JTextField tbUserId;
private javax.swing.JLabel lbUserId;
private javax.swing.JLabel lbTitle;
private javax.swing.JTextField tbEmail;
private javax.swing.JLabel lbEmail;
private javax.swing.JProgressBar progressBar;
private javax.swing.Timer timer;
private javax.swing.border.MatteBorder border;
private java.awt.Image icon;
private java.awt.Color backgColor;
private java.awt.Color borderColor;
public static synchronized FindPwdForm getInstance(LoginForm form) {
if (findPwdForm == null)
findPwdForm = new FindPwdForm(form);
return findPwdForm;
}
private FindPwdForm(LoginForm form) {
super(form, "找回密码");
initComponents();
startProgress();
addListener();
setBounds(372, 250, 300, 204);
setAlwaysOnTop(true);
setResizable(false);
setIconImage(icon);
}
private void initComponents() {
btFind = new javax.swing.JButton("确\0定");
btCancel = new javax.swing.JButton("取\0消");
tbUserId = new javax.swing.JTextField();
lbUserId = new javax.swing.JLabel("QianQian账号:");
tbEmail = new javax.swing.JTextField();
lbEmail = new javax.swing.JLabel("QianQian邮箱:");
progressBar = new javax.swing.JProgressBar();
lbTitle = new javax.swing.JLabel(new javax.swing.ImageIcon(
"icons/title.gif"));
backgColor = new java.awt.Color(235, 245, 255);
borderColor = new java.awt.Color(115, 185, 255);
border = new javax.swing.border.MatteBorder(new java.awt.Insets(1, 1,
1, 1), borderColor);
icon = new javax.swing.ImageIcon("icons/QianQian.gif").getImage();
java.awt.Container contentPane = getContentPane();
contentPane.setLayout(null);
contentPane.setBackground(backgColor);
contentPane.add(lbTitle);
lbTitle.setBorder(border);
lbTitle.setBounds(-1, -1, 302, 44);
contentPane.add(lbUserId);
lbUserId.setBounds(30, 53, 85, 25);
contentPane.add(tbUserId);
tbUserId.setBorder(border);
tbUserId.setBounds(115, 53, 135, 25);
contentPane.add(lbEmail);
lbEmail.setBounds(30, 91, 85, 25);
contentPane.add(tbEmail);
tbEmail.setBorder(border);
tbEmail.setBounds(115, 91, 135, 25);
contentPane.add(btFind);
btFind.setBorder(border);
btFind.setBounds(60, 130, 65, 25);
contentPane.add(btCancel);
btCancel.setBorder(border);
btCancel.setBounds(170, 130, 65, 25);
contentPane.add(progressBar);
progressBar.setForeground(borderColor);
progressBar.setBackground(backgColor);
progressBar.setBorder(javax.swing.BorderFactory.createEmptyBorder());
progressBar.setBounds(-2, 166, 302, 3);
pack();
}
private void startProgress() {
int delay = 600;
java.awt.event.ActionListener task = new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent ae) {
if (count <= 100)
progressBar.setValue(++count);
}
};
timer = new javax.swing.Timer(delay, task);
}
private void addListener() {
setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
// 查找
btFind.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
new Thread(new Runnable() {
public void run() {
if (!timer.isRunning()) {
btSearchPerformed();
}
}
}).start();
}
});
// 取消
btCancel.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(final java.awt.event.ActionEvent evt) {
dispose();
}
});
java.awt.event.KeyAdapter keyAdapter = new java.awt.event.KeyAdapter() {
public void keyTyped(java.awt.event.KeyEvent evt) {
if (evt.getKeyChar() == '\n') {
new Thread(new Runnable() {
public void run() {
if (!timer.isRunning()) {
btSearchPerformed();
}
}
}).start();
return;
}
if (evt.getSource() instanceof javax.swing.JTextField) {
javax.swing.JTextField text = (javax.swing.JTextField) evt
.getSource();
if (text.getText().length() > 40)
text.setText(text.getText().substring(0, 40));
}
}
};
tbEmail.addKeyListener(keyAdapter);
tbUserId.addKeyListener(keyAdapter);
}
private void resetProgress() {
tbEmail.setText("");
tbUserId.setText("");
count = 0;
progressBar.setValue(0);
timer.stop();
}
private void btSearchPerformed() {
timer.start();
String id = tbUserId.getText();
String email = tbEmail.getText();
if (!id.matches("^[0-9]*$")) {
resetProgress();
javax.swing.JOptionPane.showMessageDialog(this, "帐号只能为数字!", "提示",
javax.swing.JOptionPane.INFORMATION_MESSAGE);
return;
}
if (!email.matches(Const.REGEX)) {
resetProgress();
javax.swing.JOptionPane.showMessageDialog(this, "请输入正确注册邮箱!", "提示",
javax.swing.JOptionPane.INFORMATION_MESSAGE);
return;
}
UserMessage msg = new UserMessage(Const.CODE_FIND_PASSWD, new Peer(id), email);
Controller.getInstance().getUdpDispatcher().dispatchToServer(msg,
Const.UdpIp);
try {
synchronized (Const.waitForSearchAck) {
Const.waitForSearchAck.wait(20 * Const.WaitTimeOut);
}
} catch (Exception ex) {
ex.printStackTrace();
}
if (response) {
javax.swing.JOptionPane.showMessageDialog(this, "密码已将发送到您的邮箱!",
"提示", javax.swing.JOptionPane.INFORMATION_MESSAGE);
} else {
javax.swing.JOptionPane.showMessageDialog(this, "服务器无响应!", "提示",
javax.swing.JOptionPane.INFORMATION_MESSAGE);
}
resetProgress();
dispose();
}
public void response() {
response = true;
}
public void dispose() {
if(!timer.isRunning()) {
findPwdForm = null;
super.dispose();
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -