前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >图书管理系统代码 9 EditpassW (…

图书管理系统代码 9 EditpassW (…

作者头像
明明如月学长
发布2021-08-27 11:01:35
5820
发布2021-08-27 11:01:35
举报
文章被收录于专栏:明明如月的技术专栏

import java.awt.BorderLayout;

import java.awt.FlowLayout;

import java.awt.GridBagLayout;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.awt.event.KeyEvent;

import java.io.BufferedReader;

import java.io.File;

import java.io.FileNotFoundException;

import java.io.FileReader;

import java.io.FileWriter;

import java.io.IOException;

import java.util.ArrayList;

import javax.swing.ImageIcon;

import javax.swing.JButton;

import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.JOptionPane;

import javax.swing.JPanel;

import javax.swing.JPasswordField;

import javax.swing.JTabbedPane;

import javax.swing.JTextField;

public class EditpassW extends InitFrame 

{

public EditpassW()

{

super("图书管理系统—修改密码","Library.png",480,300);

//设置布局

this.setLayout(new BorderLayout());

this.setResizable(false);

centerPanel1 = new JPanel();//放置暗文密码的面板

centerPanel2 = new JPanel();//放置明文密码的面板

southPanel = new JPanel();//放置确定和重置按钮

this.setDefaultCloseOperation (JFrame.DISPOSE_ON_CLOSE);

// 为各个面板设置布局管理器

centerPanel1.setLayout(new GridBagLayout());

centerPanel2.setLayout(new GridBagLayout());

southPanel.setLayout(new FlowLayout());

this.add(southPanel,BorderLayout.SOUTH);

tabbedPane =new JTabbedPane();

this.add(tabbedPane,BorderLayout.CENTER);

ImageIcon image1 = new ImageIcon("edit_pass1.png");

ImageIcon image2 = new ImageIcon("edit_pass2.png");

tabbedPane.addTab("暗文密码(H)", image1, centerPanel1);

// 为选项卡面板添加快捷键

int index = tabbedPane.indexOfTab("暗文密码(H)");

tabbedPane.setMnemonicAt(index, KeyEvent.VK_H);

// ALT+H即可选中

tabbedPane.addTab("明文密码(L)", image2, centerPanel2);

// 为选项卡面板添加快捷键

int index2 = tabbedPane.indexOfTab("明文密码(L)");

tabbedPane.setMnemonicAt(index2, KeyEvent.VK_L);

// ALT+L即可选中

tabbedPane.setSelectedIndex(0);

//设置中间边框

label_super_user = new JLabel(" 请输入原用户名:");

label_pass = new JLabel("请输入原密码:");

label_pass_new = new JLabel("请输入新密码:");

label_pass_again = new JLabel("请重新输入新密码:");

field_super_user =new JTextField(20);

field_pass = new JPasswordField(20);

field_pass_new = new JPasswordField(20);

field_pass_again = new JPasswordField(20);

centerPanel1.add(label_super_user,new GBC(0,0));

centerPanel1.add(field_super_user,new GBC(1,0));

centerPanel1.add(label_pass,new GBC(0,1));

centerPanel1.add(field_pass,new GBC(1,1));

centerPanel1.add(label_pass_new,new GBC(0,2));

centerPanel1.add(field_pass_new,new GBC(1,2));

centerPanel1.add(label_pass_again,new GBC(0,3));

centerPanel1.add(field_pass_again,new GBC(1,3));

label_super_user2 = new JLabel(" 请输入原用户名:");

label_pass2 = new JLabel("请输入原密码:");

label_pass_new2 = new JLabel("请输入新密码:");

label_pass_again2 = new JLabel("请重新输入新密码:");

field_super_user2 = new JTextField(20);

field_pass2 = new JTextField(20);

field_pass_new2 = new JTextField(20);

field_pass_again2 = new JTextField(20);

centerPanel2.add(label_super_user2,new GBC(0,0));

centerPanel2.add(field_super_user2,new GBC(1,0));

centerPanel2.add(label_pass2,new GBC(0,1));

centerPanel2.add(field_pass2,new GBC(1,1));

centerPanel2.add(label_pass_new2,new GBC(0,2));

centerPanel2.add(field_pass_new2,new GBC(1,2));

centerPanel2.add(label_pass_again2,new GBC(0,3));

centerPanel2.add(field_pass_again2,new GBC(1,3));

// 设置下部边框

JButton button_ok = new JButton("确定",new ImageIcon("ok.png"));

button_ok.addActionListener(new ActionListener(){

public void actionPerformed(ActionEvent e)

{

// 1

//2   如果选择的是"暗文密码"执行如下操作

if(tabbedPane.getSelectedIndex()==0)

{

ArrayList password1=new ArrayList(10);

initArray(password1);

password_old =field_super_user.getText()+","+ new String(field_pass.getPassword());//存放输入的原密码

password_new1 =new String(field_pass_new.getPassword());//存放新密码

passWord_new2 = new String(field_pass_again.getPassword());//存放重新输入的新密码

user_new= field_super_user.getText();

// 遍历存放密码的数组

int index =password1.indexOf(password_old);

if(index>0)// 如果输入的原密码和原始密码相等

{

//将原先位置密码换成新密码

password1.set(index, new String(user_new+","+password_new1));

Object [] password_array1=password1.toArray();

if(password_new1.equals(passWord_new2))//如果两次输入的新密码相同

{

try {

FileWriter fr_new = new FileWriter(file_pass_org ,false);//不附加写入的数据(覆盖原密码)

for(int m=0;m

fr_new.write((String)password_array1[m]+"\r\n");//将新密码写入存放密码的文件

fr_new.flush();

}

fr_new.close();

System.out.println("新用户名是"+user_new);

System.out.println("新密码是"+password_new1);

} catch (IOException e1) {

JLabel label_result = new JLabel("对不起,密码写入失败!!");

JOptionPane.showConfirmDialog(tabbedPane, label_result,"图书管理系统-密码修改", JOptionPane.INFORMATION_MESSAGE,JOptionPane.OK_OPTION, new ImageIcon("null.png"));

e1.printStackTrace();

}

JLabel label_result = new JLabel("密码修改成功!!");

JOptionPane.showConfirmDialog(tabbedPane, label_result,"图书管理系统-密码修改", JOptionPane.INFORMATION_MESSAGE,JOptionPane.OK_OPTION, new ImageIcon("succes.png"));

}else

{

JLabel label_result = new JLabel("两次输入的新密码不一致,请重新输入!!");

JOptionPane.showConfirmDialog(tabbedPane, label_result,"图书管理系统-密码修改", JOptionPane.WARNING_MESSAGE,JOptionPane.OK_OPTION , new ImageIcon("result.png"));

}

}else

{

JLabel label_result = new JLabel("您输入的密码有误,请重新输入!!");

JOptionPane.showConfirmDialog(tabbedPane, label_result,"图书管理系统-密码修改", JOptionPane.INFORMATION_MESSAGE,JOptionPane.OK_OPTION, new ImageIcon("null.png"));

}

}

//3   如果选择的是"明文密码"执行如下操作

if(tabbedPane.getSelectedIndex()==1)

{

ArrayList password2=new ArrayList(10);

initArray(password2);

password_old = field_super_user2.getText()+","+field_pass2.getText();//存放输入的原密码

password_new1 =field_pass_new2.getText();//存放新密码

passWord_new2 = field_pass_again2.getText();//存放重新输入的新密码

user_new =field_super_user2.getText();

int index4 =password2.indexOf(password_old);

if(index4>0)// 如果输入的原密码和原始密码相等

{

//将原先位置密码换成新密码

password2.set(index4, new String(user_new+","+password_new1));

System.out.println("11"+password2);

Object [] password_array2 =password2.toArray();

if(password_new1.equals(passWord_new2))//如果两次输入的新密码相同

{

try {

FileWriter fr_new2 = new FileWriter(file_pass_org ,false);//不附加写入的数据(覆盖原密码)

for(int m=0;m

fr_new2.write((String)password_array2[m]+"\r\n");//将新密码写入存放密码的文件

fr_new2.flush();

}

fr_new2.close();

System.out.println("新用户名是"+user_new);

System.out.println("新密码是"+password_new1);

} catch (IOException e1) {

JLabel label_result = new JLabel("对不起,密码写入失败!!");

JOptionPane.showConfirmDialog(tabbedPane, label_result,"图书管理系统-密码修改", JOptionPane.INFORMATION_MESSAGE,JOptionPane.OK_OPTION, new ImageIcon("null.png"));

e1.printStackTrace();

}

JLabel label_result = new JLabel("密码修改成功!!");

JOptionPane.showConfirmDialog(tabbedPane, label_result,"图书管理系统-密码修改", JOptionPane.INFORMATION_MESSAGE,JOptionPane.OK_OPTION, new ImageIcon("succes.png"));

}else

{

JLabel label_result = new JLabel("两次输入的新密码不一致,请重新输入!!");

JOptionPane.showConfirmDialog(tabbedPane, label_result,"图书管理系统-密码修改", JOptionPane.WARNING_MESSAGE,JOptionPane.OK_OPTION , new ImageIcon("result.png"));

}

}else

{

JLabel label_result = new JLabel("您输入的密码有误,请重新输入!!");

JOptionPane.showConfirmDialog(tabbedPane, label_result,"图书管理系统-密码修改", JOptionPane.INFORMATION_MESSAGE,JOptionPane.OK_OPTION, new ImageIcon("null.png"));

}

}

}

});

JButton   button_cancel = new JButton("取消",new ImageIcon("cancel.png"));

button_cancel.addActionListener(new ActionListener(){

public void actionPerformed(ActionEvent e)

{

EditpassW.this.setVisible(false);//隐藏窗体

EditpassW.this.dispose();//释放窗体资源

}

});

southPanel.add(button_ok);

southPanel.add(button_cancel);

}

public ArrayList initArray(ArrayList password){

// 读取原始密码

file_pass_org = new File("E:\\图书管理系统\\password.dat");

FileReader fr;

try {

fr = new FileReader(file_pass_org);

BufferedReader br = new BufferedReader(fr);

do{

password_org= br.readLine();

System.out.println(password_org);

if(password_org!=null){

// 初始化密码数组

password.add(password_org);

i++;

System.out.println("i="+i);

}

}while(password_org!=null);

password.trimToSize();

br.close();

} catch (FileNotFoundException e1) 

{

e1.printStackTrace();

}catch(IOException e2)

{

e2.printStackTrace();

}

return password;

}

private JPanel centerPanel1 ;

private JPanel centerPanel2 ;

private JPanel southPanel ;

private JTabbedPane tabbedPane;

JLabel label_super_user;

JLabel label_pass ;

JLabel label_pass_new ;

JLabel label_pass_again ;

private JTextField field_super_user;

private JPasswordField field_pass ;

private JPasswordField field_pass_new;

private JPasswordField field_pass_again;

private JLabel label_super_user2;

private JLabel label_pass2 ;

private JLabel label_pass_new2;

private JLabel label_pass_again2 ;

private JTextField field_super_user2;

private JTextField field_pass2 ;

private JTextField field_pass_new2 ;

private JTextField field_pass_again2;

private String password_org;

private String password_old;

private String password_new1;

private String passWord_new2;

private String user_new;

private File file_pass_org ;//存放原始密码的文件路径

int i=0;

}

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2015/06/20 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档