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

📄 changepassword.java

📁 与大家分享
💻 JAVA
字号:
import javax.swing.*;

import java.awt.*;
import java.awt.event.*;
import java.net.*;
import java.io.*;

public class ChangePassword extends JFrame implements ActionListener{
	private static final long serialVersionUID = -8965773902056088264L;
	
	private JPanel pnlOK;
	private JButton btnOK, btnCancel, btnClear;
	private JLabel lblConfirmPass, lblPassword, lblLogo;
	private JPasswordField pwdPassword, pwdConfirmPass;
	private String serverIP = "localhost";
	private String userName;
	
	// 用于将窗口定位
	private Dimension scrnsize;
	private Toolkit toolkit = Toolkit.getDefaultToolkit();
	
	//构造函数
	public ChangePassword(String userName){
		super("修改密码"); 
		this.userName = userName;
		pnlOK = new JPanel();
		this.getContentPane().add(pnlOK);

		lblPassword = new JLabel("密   码:");
		lblConfirmPass = new JLabel("重复密码:");

		pwdPassword = new JPasswordField(20);
		pwdConfirmPass = new JPasswordField(20);
		btnOK = new JButton("确定");
		btnOK.setToolTipText("确定修改");
		btnOK.setMnemonic('O');
		btnClear = new JButton("清空");
		btnClear.setToolTipText("清空密码");
		btnClear.setMnemonic('C');
		btnCancel = new JButton("取消");
		btnCancel.setToolTipText("取消更改");
		btnCancel.setMnemonic('Q');
		
		/***********************************************************************
		 * 该布局采用手动布局 setBounds设置组件位置 * setFont设置字体、字型、字号 * setForeground设置文字的颜色 *
		 * setBackground设置背景色 * setOpaque将背景设置为透明
		 */
		pnlOK.setLayout(null); 
		pnlOK.setBackground(new Color(125,100,175));

		lblPassword.setBounds(50, 130, 100, 30);
		pwdPassword.setBounds(150, 130, 120, 25);
		lblConfirmPass.setBounds(50, 160, 100, 30);
		pwdConfirmPass.setBounds(150, 160, 120, 25);
		btnOK.setBounds(50, 200, 80, 25);
		btnClear.setBounds(130, 200, 80, 25);
		btnCancel.setBounds(210, 200, 80, 25);

		Font fontstr = new Font("宋体", Font.PLAIN, 12);
		lblPassword.setFont(fontstr);
		pwdPassword.setFont(fontstr);
		lblConfirmPass.setFont(fontstr);
		pwdConfirmPass.setFont(fontstr);
		btnOK.setFont(fontstr);
		btnClear.setFont(fontstr);
		btnCancel.setFont(fontstr);

		lblPassword.setForeground(Color.BLACK);
		lblConfirmPass.setForeground(Color.BLACK);
		btnOK.setBackground(Color.ORANGE);
		btnClear.setBackground(Color.ORANGE);
		btnCancel.setBackground(Color.ORANGE);

		pnlOK.add(lblPassword);
		pnlOK.add(pwdPassword);
		pnlOK.add(lblConfirmPass);
		pnlOK.add(pwdConfirmPass);
		pnlOK.add(btnOK);
		pnlOK.add(btnClear);
		pnlOK.add(btnCancel);

		// 设置背景图片
		Icon logo1 = new ImageIcon("image\\i.jpg");
		lblLogo = new JLabel(logo1);
		lblLogo.setBounds(0, 0, 340, 66);
		pnlOK.add(lblLogo);
		
		// 设置登录窗口
		setResizable(false);
		setSize(340, 260);
		setVisible(true);
		scrnsize = toolkit.getScreenSize();
		setLocation(scrnsize.width / 2 - this.getWidth() / 2, scrnsize.height
				/ 2 - this.getHeight() / 2);
		Image img = toolkit.getImage("images\\appico.jpg");
		setIconImage(img);

		// 三个按钮注册监听
		btnOK.addActionListener(this);
		btnClear.addActionListener(this);
		btnCancel.addActionListener(this);

	} 
	// 构造方法结束

	public void actionPerformed(ActionEvent e) {
		// TODO Auto-generated method stub
		Object source=new Object();
	    source=e.getSource();
	    if (source.equals(btnOK))      //"确定"按钮
	    {
	        changePass(userName);
	    }
	    if (source.equals(btnCancel))  //"取消"按钮
	    {
	    	this.dispose();
	    }
	    if (source.equals(btnClear))  //"清空"按钮
	    {
			pwdPassword.setText("");
	        pwdConfirmPass.setText("");
		}
		
	}
	private void changePass(String name) {
		// TODO Auto-generated method stub
		//接受客户修改资料
		Password data = new Password();
		data.setUserName(name);
	    data.setUserPwd(pwdPassword.getText());
		data.setConfirmPwd(pwdConfirmPass.getText());
		
		try 
		{
			Socket toServer;
			toServer = new Socket(serverIP, 30002);
			ObjectOutputStream streamToServer = new ObjectOutputStream(toServer
					.getOutputStream());
			streamToServer.writeObject((Password) data);//将用户的信息发送到服务器
			BufferedReader fromServer = new BufferedReader(
					new InputStreamReader(toServer.getInputStream()));
			String status = fromServer.readLine();//读取来自服务器的信息
			if (status.equals("修改成功")) 
			{				
				JOptionPane.showMessageDialog(null, status);//显示成功信息
				this.dispose();
				streamToServer.close();
				fromServer.close();
				toServer.close();				
			} 
			else 
			{
				JOptionPane.showMessageDialog(null, status);//显示错误信息
				streamToServer.close();
				fromServer.close();
				toServer.close();
			}
		}catch (ConnectException e1) {
			JOptionPane.showMessageDialog(null, "未能建立到指定服务器的连接!");
		} catch (InvalidClassException e2) {
			JOptionPane.showMessageDialog(null, "类错误!");
		} catch (NotSerializableException e3) {
			JOptionPane.showMessageDialog(null, "对象未序列化!");
		} catch (IOException e4) {
			JOptionPane.showMessageDialog(null, "不能写入到指定服务器!");
		}
	}

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -