⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 findpwdform.java

📁 一个仿qq的程序源码 一个用纯java开发的
💻 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 + -