📄 changepassword.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 + -