Java中登录页面 记住密码
来源:互联网 发布:linux ntp配置文件 编辑:程序博客网 时间:2024/06/11 15:37
Java中登录页面 记住密码
public class Login extends JFrame implements ActionListener {
private JLabel username = new JLabel(“用 户 名:”);
private JLabel password = new JLabel(“密 码:”);
private Tpanel pane = new Tpanel(“pic/Login.png”);
private JButton ok = new JButton(“登录”);
private JButton cancel = new JButton(“取消”);
private JTextField usernametext = new JTextField(8);
private JPasswordField passwordtext = new JPasswordField(8);
private JCheckBox check = new JCheckBox();
private OutputStreamWriter writer = null;
private InputStreamReader reader = null;
private File user=null;
public Login() {
//打开user文本,用来记录用户名和密码
user = new File(“date/user.txt”);
if(!user.exists()){
try {
user.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
}
pwdRemember();
// 添加监听
ok.addActionListener(this);
cancel.addActionListener(this);
pane.setLayout(null);
username.setBounds(110,110, 80, 22);
usernametext.setBounds(180, 110, 100, 22);
password.setBounds(110,138, 80, 22);
passwordtext.setBounds(180,138, 100, 22);
ok.setBounds(118,175, 70, 25);
cancel.setBounds(198,175, 70, 25);
check.setBounds(210,210,110,25);
check.setText(“记住密码”);
this.add(check);
this.add(username);
this.add(password);
this.add(pane);
this.add(ok);
this.add(cancel);
this.add(usernametext);
this.add(passwordtext);
this.getRootPane().setDefaultButton(ok);
// 设置框体结构
this.add(pane);
this.setTitle(“登录系统”);
this.setSize(369, 290);
this.setLocation(500, 300);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
this.setResizable(false);
}
public void sql() {
FundSocket t = new FundSocket(“select * from worker where username = ‘”
+ usernametext.getText()+”’ AND password = ‘”
+ passwordtext.getText() + “’”);
Object s[] =t.socketOpen();
try {
if (s.length!=0) {
String puil = usernametext.getText().substring(2, 3); // 获取用户的权限
FundFrame.getInstance(s[0].toString(),s[1].toString(), puil); // 打开主页面
this.setVisible(false); // 将登陆窗口隐藏
} else { JOptionPane.showMessageDialog(this, "请输入正确的用户名和密码"); passwordtext.setText(null);}
} catch (Exception e) {
e.getStackTrace();
}
//判断是否记住密码
if(check.isSelected()&&usernametext.getText().length()!=0&&passwordtext.getText().length()!=0){
try {
writer = new OutputStreamWriter(new FileOutputStream(“date/user.txt”));
writer.write(“remember:true:username:”+usernametext.getText()+”:password:”+passwordtext.getText()+”\n”);
writer.close();
} catch (IOException e) {
e.printStackTrace();
}
}
else if(usernametext.getText().length()!=0&&passwordtext.getText().length()!=0) {
try {
writer = new OutputStreamWriter(new FileOutputStream(“date/user.txt”));
writer.write(“remember:false:username:”+usernametext.getText()+”:password:”+passwordtext.getText()+”\n”);
writer.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
//记住密码
public void pwdRemember(){
try {
reader = new InputStreamReader(new FileInputStream(user));
BufferedReader in = new BufferedReader(reader);
String url=null;
String a[]= new String[6];
if(user.length()==0){ //如果文本中没有记录
writer = new OutputStreamWriter(new FileOutputStream(user,true));
writer.write(“remember:false\n”);
writer.close();
}
else {
url=in.readLine().trim();
a=url.split(“:”);
if(a[1].trim().equals(“true”)){
check.setSelected(true);
usernametext.setText(a[3]);
passwordtext.setText(a[5]);
}
}
in.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
public void actionPerformed(ActionEvent e) {
Object s = e.getSource();
if (s == ok) {
sql();
} else if (s == cancel) {
System.exit(0);
}
}
}
注意事项:
1、判断文本的大小可以采用 user.length() ==0 的方法来判断,也就是看文本的大小是否为0;
2、输入输出流要记得close(),不然的话 会出现文本框里面的内容为空的现象;
3、readLine()方法 获取到的文本最好 赋值给其他变量,不要直接用它来当变量,容易出错,因为一用完就要close();
4、注意 读、写语句的位置~!。在默认的情况下 writer = new OutputStreamWriter(new FileOutputStream(user));
会将之前写入到文本的内容覆盖掉, writer = new OutputStreamWriter(new FileOutputStream(user,true)); 当在里面添加一true 时 则不将内容覆盖!。 因此 读写的位置挺关键的,往往要读数据的时候会出现无法读到数据的情况,那就是因为之前数据在定义覆盖的时候已经被清空了,所以无法读到数据。
- Java中登录页面 记住密码
- java web登录页面上记住密码
- 登录页面(记住密码)
- 登录页面记住密码案例
- JAVA之登录页面记住密码之COOKIE实现
- 登录页面使用Cookie 记住密码
- 手机登录页面(记住密码)
- java实现密码自动登录,记住密码
- java实现密码自动登录,记住密码
- javascript中cookie使用--登录记住密码
- iphone开发-在页面中记住登录名和密码的方法
- jsp login登录页面的记住密码 cookie控制
- Android小程序-Walker登录记住密码页面(六)
- Android实验六之登录页面记住密码
- 登录页面如何去掉浏览器默认记住密码
- 用SharedPerference设计登录页面,可以选择是否记住密码
- 登录实现记住密码
- 登录时记住密码
- [51nod 1594]Gcd and Phi
- (斯坦福机器学习笔记)线性回归练习
- Java学习日记1
- 字符串逆序输出
- iOS之实现图片裁剪的几种方式
- Java中登录页面 记住密码
- 文章标题
- 两主机搭建MySQL主从复制后,show slave status显示:Last_IO_Error: error connecting to master ……
- You are using pip version 8.1.1, however version 9.0.1 is available.
- leetcode--Happy Number
- h2内存型数据库离线开发配置
- 使用SQLite数据库存储数据
- 浅析数据结构之广义表
- 【NOIP2017提高组模拟12.10】幻魔皇