这篇文章主要介绍了Java图形界面开发,简易登录注册小程序,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

登录注册小代码,将学过的一些小知识融合在一起进行了使用,加深印象。本例中如果有注释不详细的地方,详见其它博客。

功能介绍:简单的登录注册系统,使用了数据库sqlserver、单例模式、正则表达式以及图形化开发等知识。

1、在登录界面,可以登录或者注册用户。 注册用户界面,按照正则表达式规定的格式要求来输入信息,若有误,则重新输入。

2、点击注册,首先连接SQLserver数据库,连接成功则会判断该用户名是否已经存在,若存在,则给出提示。反之则进行注册。

3、登录界面,点击登录按钮时,首先与数据库建立连接。按照用户名和密码来向数据库中查找,若有,则登录成功。反之给出提示。

4、利用单例模式,实现了只创建类SQLserver的一个对象,大大节省了内存开销 。

程序完整代码见:https://github.com/chaohuangtianjie994/A-login-register-System

5、基于此,可以进行大量的拓展功能。

代码如下:

UserRegister.java  登录界面。

package package1;

/*

* 功能:登录界面带着注册功能,弹出注册界面。

* 将注册的信息保存在数据库中,并且可以进行登录操作。

* author:ywq

*/

import javax.swing.*;

import java.awt.*;

import java.awt.event.*;

import java.sql.*;

public class UserRegister extends JFrame implements ActionListener{

//定义登录界面的组件

JButton jb1,jb2,jb3=null;

JRadioButton jrb1,jrb2=null;

JPanel jp1,jp2,jp3=null;

JTextField jtf=null;

JLabel jlb1,jlb2=null;

JPasswordField jpf=null;

public static void main(String[] args)

{

UserRegister ur=new UserRegister();

}

public UserRegister()

{

//创建组件

//创建组件

jb1=new JButton("登录");

jb2=new JButton("注册");

jb3=new JButton("退出");

//设置监听

jb1.addActionListener(this);

jb2.addActionListener(this);

jb3.addActionListener(this);

jlb1=new JLabel("用户名:");

jlb2=new JLabel("密 码:");

jtf=new JTextField(10);

jpf=new JPasswordField(10);

jp1=new JPanel();

jp2=new JPanel();

jp3=new JPanel();

jp1.add(jlb1);

jp1.add(jtf);

jp2.add(jlb2);

jp2.add(jpf);

jp3.add(jb1);

jp3.add(jb2);

jp3.add(jb3);

this.add(jp1);

this.add(jp2);

this.add(jp3);

this.setVisible(true);

this.setResizable(false);

this.setTitle("注册登录界面");

this.setLayout(new GridLayout(3,1));

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

this.setBounds(300, 200, 300, 180);

}

@Override

public void actionPerformed(ActionEvent e) {

//监听各个按钮

if(e.getActionCommand()=="退出")

{

System.exit(0);

}else if(e.getActionCommand()=="登录")

{

//调用登录方法

this.login();

}else if(e.getActionCommand()=="注册")

{

//调用注册方法

this.Regis();

}

}

//注册方法

public void Regis() {

this.dispose(); //关闭当前界面

new UI(); //打开新界面

}

//登录方法

public void login() {

SQLserver s=new SQLserver();

s.ConnectSQL();

s.SQLverify(jtf.getText(), jpf.getText());

this.jtf.setText("");

this.jpf.setText("");

}

}

UI.java   用于注册的页面显示。使用了正则表达式来规定输入的内容。注册时候,需要首先判断用户名是否存在,若存在,则给出提示,反之进行注册。

package package1;

import java.awt.event.*;

import java.awt.*;

import javax.swing.*;

/*

* 注册界面。

*/

class UI extends JFrame implements ActionListener{

//定义组件

JFrame jf;

JPanel jp;

JLabel jl1,jl2,jl3,jl4;

JTextField jtf1,jtf2,jtf3,jtf4;

JButton jb1,jb2;

public UI()

{

//初始化组件

jf=new JFrame();

jp=new JPanel();

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

jtf1=new JTextField(10);

jtf1.setToolTipText("用户名必须为3-6位字母_或者数字");

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

jtf2=new JTextField(10);

jtf2.setToolTipText("密码必须为6位字母_或者数字");

jl3=new JLabel("请输入姓名:");

jtf3=new JTextField(10);

jtf3.setToolTipText("姓名必须汉字2-4位");

jl4=new JLabel("请输入学号:");

jtf4=new JTextField(10);

jtf4.setToolTipText("学号必须为3-6位数字");

jb1=new JButton("返回");

jb1.setToolTipText("点我返回登录界面哦");

jb2=new JButton("注册");

jb1.addActionListener(this);

jb2.addActionListener(this);

jp.setLayout(new GridLayout(5,2));

jp.add(jl1);

jp.add(jtf1);

jp.add(jl2);

jp.add(jtf2);

jp.add(jl3);

jp.add(jtf3);

jp.add(jl4);

jp.add(jtf4);

jp.add(jb1);

jp.add(jb2);

this.add(jp);

this.setTitle("注册界面");

this.setBounds(200, 100, 250, 150);

this.setVisible(true);

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

// this.setResizable(false);

}

public void actionPerformed(ActionEvent e) {

if(e.getActionCommand()=="返回")

{

this.dispose();

new UserRegister();

// System.out.println("-------");

}else if(e.getActionCommand()=="注册")

{

//调用注册方法

this.zhuce();

}

}

public void zhuce()

{

String regex1="\\w{3,6}"; //用户名必须是3-6位

boolean flag1=jtf1.getText().matches(regex1);

String regex2="\\w{6}"; //密码必须是6位

boolean flag2=jtf2.getText().matches(regex2);

String regex3="[\\u4e00-\\u9fa5]{2,4}"; //姓名必须是汉字2-4个字

boolean flag3=jtf3.getText().matches(regex3);

String regex4="\\d{3,6}"; //学号必须是3-6位

boolean flag4=jtf4.getText().matches(regex4);

// if(jtf1.getText()==null||jtf2.getText()==null||jtf3.getText()==null||jtf4.getText()==null)

if(flag1==false)

{

JOptionPane.showMessageDialog(null, "用户名填写错误,必须为3-6位字母_或者数字", "提示信息", JOptionPane.WARNING_MESSAGE);

jtf1.setText("");

}else if(flag2==false)

{

JOptionPane.showMessageDialog(null, "密码填写错误,必须为6位字母_或者数字", "提示信息", JOptionPane.WARNING_MESSAGE);

jtf2.setText("");

}else if(flag3==false)

{

JOptionPane.showMessageDialog(null, "姓名填写错误,必须汉字2-4位", "提示信息", JOptionPane.WARNING_MESSAGE);

jtf3.setText("");

}else if(flag4==false)

{

JOptionPane.showMessageDialog(null, "学号填写错误,必须为3-6位数字", "提示信息", JOptionPane.WARNING_MESSAGE);

jtf4.setText("");

}else

{

//调用注册方法/先检查要注册的用户名是否存在

SQLserver ss=new SQLserver();

ss.ConnectSQL();

ss.ZhuceVerify(jtf1.getText());

// ss.UserRegis(jtf1.getText(),jtf2.getText(),jtf3.getText(), jtf4.getText());

this.jtf1.setText("");

this.jtf2.setText("");

this.jtf3.setText("");

this.jtf4.setText("");

}

}

}

SQLserver.java实现了与数据库的连接以及查询验证等各个功能。

package package1;

import java.sql.*;

import javax.swing.JOptionPane;

/*

* 与数据库相关的操作,单独封装成类

*/

class SQLserver {

Connection ct;

PreparedStatement ps;

ResultSet rs;

String user,pwd;

//将连接数据库的方法封装为一个方法

public void ConnectSQL()

{

try {

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); //加载驱动

ct=DriverManager.getConnection("jdbc:odbc:ywq"); //得到连接

System.out.println("已成功连接数据库...");

} catch (Exception e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

//注册用户的方法

public void UserRegis(String a,String b,String c,String d)

{

//创建火箭车

try {

ps=ct.prepareStatement("insert into users values(?,?,?,?)");

ps.setString(1,a);

ps.setString(2,b);

ps.setString(3,c);

ps.setString(4,d);

//执行

int i=ps.executeUpdate();

if(i==1)

{

JOptionPane.showMessageDialog(null, "注册成功","提示消息",JOptionPane.WARNING_MESSAGE);

}else

{

JOptionPane.showMessageDialog(null, "注册失败","提示消息",JOptionPane.ERROR_MESSAGE);

}

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

// 登录验证方法

public void SQLverify(String a,String b)

{

try {

ps=ct.prepareStatement("select * from users where 用户名=? and 密码=? ");

ps.setString(1, a);

ps.setString(2, b);

// ResultSet结果集,大家可以把ResultSet理解成返回一张表行的结果集

rs = ps.executeQuery();

if(rs.next())

{

user = rs.getString(1);

pwd = rs.getString(2);

JOptionPane.showMessageDialog(null, "登录成功!!!", "提示消息", JOptionPane.WARNING_MESSAGE);

System.out.println("成功获取到密码和用户名from数据库");

System.out.println(user + "\t" + pwd + "\t");

}else

{

JOptionPane.showMessageDialog(null, "用户名或者密码错误,请重新输入!", "提示消息", JOptionPane.ERROR_MESSAGE);

}

} catch (SQLException e) {

e.printStackTrace();

}

}

//注册验证方法,判断用户名是否已经存在

public void ZhuceVerify(String a)

{

try {

ps=ct.prepareStatement("select * from users where 用户名=?");

// System.out.println(ps);

ps.setString(1, a);

rs=ps.executeQuery();

if(rs.next())

{

JOptionPane.showMessageDialog(null, "该用户名已经存在", "提示信息", JOptionPane.WARNING_MESSAGE);

}else

{

// 进行注册

UI ui=new UI();

this.UserRegis(ui.jtf1.getText(),ui.jtf2.getText(),ui.jtf3.getText(),ui.jtf4.getText());

}

} catch (SQLException e) {

e.printStackTrace();

}

}

}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

java简单小程序_Java简易登录注册小程序相关推荐

  1. Java图形界面开发—简易登录注册小程序

    登录注册小代码,将学过的一些小知识融合在一起进行了使用,加深印象.本例中如果有注释不详细的地方,详见其它博客. Java程序操作数据库SQLserver详解 功能介绍:简单的登录注册系统,使用了数据库 ...

  2. java简单小项目_Java简易抽奖系统小项目

    本文实例为大家分享了Java简易抽奖系统的具体代码,供大家参考,具体内容如下 需求: 实现一个抽奖系统 1 注册 2 登录 3 抽奖 必须先注册  再登陆  再抽奖 随机产生4个随机数作为幸运卡号 用 ...

  3. java简单文本编译器_java -简易文本编辑器

    import javax.swing.*; import java.awt.*; import java.awt.event.*; import java.io.*; /** * Title:java ...

  4. 登录注册小程序(JAVA基础案例教程第二章-课后作业)

    [案例介绍] 任务描述 编写程序实现简单的登录注册功能.程序包含以下4个功能: (1)登录功能,用户输入正确的账号密码进行成功: (2)注册功能,输入用户名和密码进行注册: (3)查看功能,查看所有的 ...

  5. Java基础案例2-6:登录注册小程序

    [案例2-6] 登录注册小程序 [案例介绍] 编写程序实现简单的登录注册功能.程序包含以下4个功能: (1)登录功能,用户输入正确的账号密码进行成功: (2)注册功能,输入用户名和密码进行注册: (3 ...

  6. 2020-2-15一个web登录注册小程序与Spring初始+作业

    文章目录 建立一个Web登录注册小程序 1.先在Mysql数据库中新建一个数据库 2.在IDEA中新建一个工程 3.对项目进行简单分层 4.设计一个实体类 5.引入一个jdbc工具类 6.写一个测试类 ...

  7. 微信小程序如何实现登录注册带源码

    前几天没事随手写了个小程序端的登录注册,现在分享给大家 一.登录微信前端 这是效果图与wxml代码 这是wxss代码 input{height: 100rpx; text-align: center; ...

  8. 【新手向】Python做一个简易登录注册GUI界面(无事件绑定)

    Python做一个简易登录注册GUI界面 一,效果展示 (1)运行结果: (2)点击登录: 注:只有用户名:123 密码123456 会提示登录成功. 登录成功示范: 登录失败示范: (3)点击注册 ...

  9. 简单CSS/HTML的动画登录注册网页[拳皇]

    简单CSS/HTML的动画登录注册网页[拳皇] 今天我们学习了过渡与动画效果,接下来将结合此方法呈现出来一个简单的CSS/HTML的登录注册网页. *同页面切换登录注册哦~ 页面截图 方法原理 [1] ...

最新文章

  1. dht11 python mysql,自己动手实现智能家居之温湿度数据采集存储(DHT11,MySql)
  2. editplus 配置 golang 开发调试环境
  3. 【错误记录】Flutter 使用 MediaQuery 适配全面屏报错 ( No MediaQuery widget ancestor found. )
  4. 阿里巴巴云原生 etcd 服务集群管控优化实践
  5. Servlet第二篇【Servlet调用图、Servlet细节、ServletConfig、ServletContext】
  6. c++两个数组对比去掉重复的元素_30 数组案例
  7. jsp实现数据禁用和只读
  8. 鼠标在滑块上滚轮控制_高速直线运动导轨—滚轮直线导轨
  9. jsp中如何将Java对象转成js对象?
  10. linux ssh 域,Linux SSH 与 SCP命令简述
  11. 2004-6-22+ 用vs.net做的留言板
  12. Jzoj1307 Jail
  13. miui11精简_MIUI11评测:真的是缺乏创新吗?
  14. 【小程序开发】uniapp引入iconfont图标及使用方式
  15. web移动开发总结(一)
  16. 电脑无规律无响应,鼠标能动但是点击无反应一直在转圈。
  17. mysql C openmp_OpenMP: sections分段并行 | 学步园
  18. kaggle机器学习教程(Python实现)
  19. 如何在excel中插入文件?Excel插入对象和附件有什么区别?(插入对象能直接显示内容,但我没显示?)
  20. ROS示例----导航功能包Husky_exploration

热门文章

  1. 把 Spring Cloud 给拆了!详解每个组件的作用
  2. 使用pytorch的相关问题总结
  3. Mybatis一级缓存,二级缓存的实现就是这么简单
  4. 轻松读懂数据结构系列:早操排队图解选择排序
  5. 玩转springboot:日志的使用
  6. ArrayList深入解析,看这篇就够了
  7. struts实战--实现条件查询(利用dbutils)
  8. 蓝桥杯-合并石子(java)
  9. sevlet实现下载文件功能
  10. 循环队列的顺序存储和实现(C语言)【循环队列】