本文主要应用的技术有:GUI和IO流

我们要利用Java的图形化界面编程实现一个拥有注册和登录简单功能的案例

设计思路:首先我们要实现注册功能,就要有一个用来储存用户名和密码的对象,这里所采用的对象就是文件,通过IO流操作,将用户名和密码以字符串拼接的方式存入文件;其次,要做到登录的功能,就是要使用户输入的用户名和密码,能与文件中储存的(其中一条)数据对的上,就显示登录成功,否则就失败;最后我们就是要将GUI与IO流结合起来,达到实现。

代码:

package 练习;import java.awt.Dimension;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;public class Test1 extends JFrame{//创建文本标签和文本框JLabel usernamel=new JLabel("用户名");JLabel usernuml=new JLabel("密码  ");JTextField usernamet=new JTextField(18);JTextField usernumt=new JTextField(18);//创建一个容器用来储存JPanel jp=new JPanel();//注册和登录的按钮JButton jbutton1=new JButton("注册");JButton jbutton2=new JButton("登录");public Test1() {Toolkit t=Toolkit.getDefaultToolkit();//工具类Dimension d=t.getScreenSize();int height=(int)d.getHeight();//得到显示屏的高度int width=(int)d.getWidth();//得到显示屏的宽度this.setBounds((width-300)/2, (height-400)/2, 250, 150);//设置一个宽为250,高为150的窗口,并且让窗口居中this.setDefaultCloseOperation(3);//关闭窗口的同时,结束运行this.setTitle("登录系统");//窗口标题init();this.setVisible(true);//让窗口显示}public void init() {//将内容添加到容器中jp.add(usernamel);jp.add(usernamet);jp.add(usernuml);jp.add(usernumt);jp.add(jbutton1);jp.add(jbutton2);jbutton1.addActionListener(new ActionListener() {//添加监听器//将用户名和密码写入文件中的操作@Overridepublic void actionPerformed(ActionEvent e) {try {BufferedWriter w=new BufferedWriter(new FileWriter("D:/登录.txt",true));String sum=usernamet.getText()+" "+usernumt.getText();//中间加了空格是为了确保后续登录与文件数据匹配的稳定性BufferedReader r=new BufferedReader(new FileReader("D:/登录.txt"));boolean cot=true;String s;while((s=r.readLine())!=null) {if(sum.equals(s)) {cot=false;//如果符合其中一条数据,说明该数据就已经存在了,就不能在注册}}if(cot) {w.write(sum);w.newLine();w.flush();w.close();JOptionPane.showMessageDialog(null, "注册成功!");//对按了注册按钮做出的回应}else {JOptionPane.showMessageDialog(null, "已经存在了,请更换用户名和密码!");//对按了注册按钮做出的回应}} catch (IOException e1) {e1.printStackTrace();}}});jbutton2.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {String sum=usernamet.getText()+" "+usernumt.getText();//中间加了空格是为了确保与文件数据匹配的稳定性//对用户名和密码进行匹配boolean cot=false;String s;try {BufferedReader r=new BufferedReader(new FileReader("D:/登录.txt"));while((s=r.readLine())!=null) {if(s.equals(sum)) {cot=true;//如果符合其中一条数据,就为登录成功}}//对按登录按钮做出的回应if(cot) {JOptionPane.showMessageDialog(null, "登录成功!");}else {JOptionPane.showMessageDialog(null, "用户名或者密码错误,登录失败!");}} catch (Exception e1) {e1.printStackTrace();}}});this.add(jp);} public static void main(String[] args) {new Test1();}
}

页面运行结果:

注册账号结果:

如果输入了相同的账号和密码,就不会注册成功:

在比对用户名是否被注册方面,还没有完善。

登录结果:

登录失败结果:

谢谢观看!

Java实现登录和注册功能相关推荐

  1. 复习Java第二个项目仿QQ聊天系统 03(两种通信类、登录以及注册功能完善) Java面试题并发编程相关知识生活【记录一个咸鱼大学生三个月的奋进生活】025

    记录一个咸鱼大学生三个月的奋进生活025 复习Java(仿QQ聊天系统03两种通信类.登录以及注册功能完善) TcpSocket类(与服务器进行通信) Server类(服务器类) TcpMessage ...

  2. Java Web 案例一 登录、注册功能实现

    实现用户登录和注册功能.项目分为 Web 层.业务逻辑层.数据访问层. 将用户信息封装在 UserBean 对象中.用户信息有:username(String).password(String).ni ...

  3. 用户的登录及注册功能

    今天来写一个简易版的用户登录和注册功能 先写一个DBUtil工具类 public class DBUtil {//加载数据库驱动static {try {Class.forName("com ...

  4. 【Android Studio学习】第一篇、制作一个拥有登录和注册功能的简易APP

    目录 第一部分.前言 1.目标效果 2.准备知识 第二部分.详细步骤 1.新建Empty工程 ​2.添加资源文件 3.搭建注册界面 4.搭建登录界面 5.编写注册界面和登录界面的代码 6.设置APP初 ...

  5. 用python写注册登录界面web_用Python实现web端用户登录和注册功能

    这篇文章主要介绍了用Python实现web端用户登录和注册功能的教程,需要的朋友可以参考下 用户管理是绝大部分Web网站都需要解决的问题.用户管理涉及到用户注册和登录. 用户注册相对简单,我们可以先通 ...

  6. python123注册登录_用Python实现web端用户登录和注册功能的教程

    用户管理是绝大部分Web网站都需要解决的问题.用户管理涉及到用户注册和登录. 用户注册相对简单,我们可以先通过API把用户注册这个功能实现了: _RE_MD5 = re.compile(r'^[0-9 ...

  7. 前端获取验证码、手机号登录、注册功能

    07.前端获取验证码.手机号登录.注册功能 Register.vue <template><div class="register"><div cla ...

  8. 用java数组模拟登录和注册功能

    package com.linkage.login; import java.util.Scanner; public class user { // 存储用户名和密码 public static S ...

  9. 基于struts2和hibernate的登录和注册功能——完整实例

    1.该项目使用MySQL数据库,数据库名为test,表名info,如图所示: 2.配置web.xml(Struts2使用) <?xml version="1.0" encod ...

最新文章

  1. 第四周课程总结实验报告(二)
  2. Hadoop2异常分析(二):Sqoop导出数据错误
  3. sql月度分组_SQL Server按月分组
  4. 网络 计算机网络预备知识
  5. 【渝粤教育】国家开放大学2018年秋季 2208T政治学原理 参考试题
  6. opencart笔记
  7. 微软在线实验室启用谷歌的reCAPTCHA,我们又丢失了一个好东东
  8. 查询视图遇见的问题,以及访问另一个数据库的表
  9. ThinkPad键盘拆解与清理(附图详解)
  10. 把电脑虚拟机linux下编译的程序烧写到ARM9开发板的linux系统里面的具体操作步骤
  11. Thinkphp 5.x远程命令执行漏洞
  12. 书籍推荐:国内第一本ASP.NET 3.5 MVC技术专著
  13. 起码数学常识凸显中学数学的重大错误0
  14. Centos系统下搭建Smokeping 方法
  15. OpenCV模板匹配和轮廓处理
  16. 2019北邮网安院机试真题(回忆版)@lantin
  17. 如何用切片工具做html网页,ps中的切片工具怎么用,怎么将html文本添加到切片...
  18. 超神学院的宇宙天体计算机,正文 第一章:银河之力被一分为二
  19. Java类定义、成员变量定义、方法定义、成员变量与局部变量的区别
  20. 策略模式代替if-else

热门文章

  1. lisp 自带dcl_Lisp教程(下册 DCL编程)彩版
  2. bat命令一键式重启服务
  3. C#编写大计算量程序总是报内存溢出System.OutOfMemoryException的重要原因
  4. Servlet Jsp | 3:在idea下开发MVC项目
  5. Mosh Python 学习笔记
  6. 两个基于二次剩余的公钥加密算法
  7. IAR工具中扩展名为icf的文件
  8. simulation与emulation的区别
  9. 记一次vCenter7.0安装补丁
  10. 论文解析:Capsule Network