资讯详情

Java--用户登录/注册界面(连接Mysql数据库)并可以通过验证码登录

1 效果展示

(1)登录界面 在这里插入图片描述 (2)注册界面 (3)动图显示

2 内容说明

(1)开发前需要引入连接Mysql 数据库驱动mysql-connector-java-5.1.30-bin.jar包 (2)路径建设 (3)需要下载xampp软件 xampp软件下载 xampp软件包含Apache Web服务器、Mysql Web服务器、Filezilla Web服务器、Mercury服务器以及Tomcat Web服务器。在这个项目中,我们只需要打开它服务器和服务器。

3 主要代码

(1)GUI登录界面设计代码如下:

package com.weh.User;  import com.weh.ClientDemo.MousePressedSet; import com.weh.Mail.SendMail;  import javax.swing.*; import javax.swing.plaf.basic.BasicButtonUI; import javax.swing.plaf.basic.BasicPanelUI; import java.awt.*; import java.awt.event.FocusEvent; import java.awt.event.FocusListener; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.SQLException; import java.util.regex.Matcher; import java.util.regex.Pattern;  /* * 登录窗口 */ public class LoginDemo extends JFrame{ 
             JTextField uField;     JPasswordField pFd;     JTextField QQField ;     JTextField tField;     static int random;     static boolean flag=false;     Login login=
       
        new 
        Login
        (
        )
        ; 
        public 
        LoginDemo
        (
        ) 
        { 
          
        super
        (
        "HI登录界面"
        )
        ; 
        //获取显示屏的大小 Dimension screenSize 
        = Toolkit
        .
        getDefaultToolkit
        (
        )
        .
        getScreenSize
        (
        )
        ; 
        int sw 
        = screenSize
        .width
        ; 
        int sh 
        = screenSize
        .height
        ; 
        //窗口宽高大小 
        int width 
        = 
        500
        ; 
        int height 
        = 
        340
        ; 
        this
        .
        setBounds
        (
        (sw 
        - width
        ) 
        / 
        2
        , 
        (sh 
        - height
        ) 
        / 
        2
        , width
        , height
        )
        ;
        //设置窗口的位置 
        this
        .
        setIconImage
        (Toolkit
        .
        getDefaultToolkit
        (
        )
        .
        getImage
        (LoginDemo
        .
        class
        .
        getResource
        (
        "/com/weh/img/chatping.jpg"
        )
        )
        )
        ;
        //窗口图标 Image image 
        = Toolkit
        .
        getDefaultToolkit
        (
        )
        .
        getImage
        (LoginDemo
        .
        class
        .
        getResource
        (
        "/com/weh/img/chat.jpg"
        )
        )
        ;
        //背景图 ImageIcon background 
        = 
        new 
        ImageIcon
        (image
        )
        ; background
        .
        setImage
        (image
        .
        getScaledInstance
        (width
        , height
        , Image
        .SCALE_AREA_AVERAGING
        )
        )
        ; JLabel label 
        = 
        new 
        JLabel
        (background
        )
        ; 
        // 把背景图片显示在一个标签里面 label
        .
        setBounds
        (
        0
        , 
        0
        , 
        this
        .
        getWidth
        (
        )
        , 
        this
        .
        getHeight
        (
        )
        )
        ; 
        // 把标签的大小位置设置为图片刚好填充整个面板 JPanel imagePanel 
        = 
        (JPanel
        ) 
        this
        .
        getContentPane
        (
        )
        ; 
        // 把内容窗格转化为JPanel,否则不能用方法setOpaque()来使内容窗格透明 imagePanel
        .
        setOpaque
        (
        false
        )
        ; 
        // 窗口透明 
        this
        .
        getLayeredPane
        (
        )
        .
        add
        (label
        , Integer
        .
        valueOf
        (Integer
        .MIN_VALUE
        )
        )
        ; 
        // 把背景图片添加到分层窗格的最底层作为背景 JPanel panel 
        = 
        new 
        JPanel
        (
        )
        ; 
        //盒子模块 Box ubox 
        = Box
        .
        createHorizontalBox
        (
        )
        ; Box pbox 
        = Box
        .
        createHorizontalBox
        (
        )
        ; Box vbox 
        = Box
        .
        createVerticalBox
        (
        )
        ; 
        //创建界面工具类 JLabel uLabel 
        = 
        new 
        JLabel
        (
        "用户名:"
        )
        ; 
        //文本设计 uLabel
        .
        setFont
        (
        new 
        Font
        (
        "微软雅黑"
        , Font
        .BOLD
        , 
        15
        )
        )
        ; uLabel
        .
        setForeground
        (
        new 
        Color
        (
        0xFBFCFD
        )
        )
        ; 
        // 设置前景色 uField 
        = 
        new 
        JTextField
        (
        )
        ; 
        //输入框 uField
        .
        setToolTipText
        (
        "HI"
        )
        ;
        // 悬停显示 uField
        .
        setFont
        (
        new 
        Font
        (
        "微软雅黑"
        , Font
        .BOLD
        , 
        15
        )
        )
        ; uField
        .
        setColumns
        (
        12
        )
        ; JLabel pLabel 
        = 
        new 
        JLabel
        (
        "密 码:"
        )
        ; 
        //文本设计 pLabel
        .
        setFont
        (
        new 
        Font
        (
        "微软雅黑"
        , Font
        .BOLD
        , 
        15
        )
        )
        ; pLabel
        .
        setForeground
        (
        new 
        Color
        (
        0xFBFCFD
        )
        )
        ; 
        // 设置前景色 pFd 
        = 
        new 
        JPasswordField
        (
        )
        ; pFd
        .
        setToolTipText
        (
        "密码"
        )
        ;
        // 悬停显示 pFd
        .
        setFont
        (
        new 
        Font
        (
        "微软雅黑"
        , Font
        .BOLD
        , 
        15
        )
        )
        ; pFd
        .
        setColumns
        (
        12
        )
        ; 
        // 如果使用其他回显字符,可以设置大小,但是星星不可以。。。 pFd
        .
        setEchoChar
        (
        '●'
        )
        ;
        // 星星符号 JButton button1 
        = 
        new 
        JButton
        (
        "登录"
        )
        ; 
        //登录按钮 button1
        .
        setToolTipText
        (
        "登录"
        )
        ;
        // 悬停显示 JButton button2 
        = 
        new 
        JButton
        (
        "重置"
        )
        ; 
        //重置按钮 button2
        .
        setToolTipText
        (
        "重置"
        )
        ;
        // 悬停显示 JButton button3 
        = 
        new 
        JButton
        (
        "发送验证码"
        )
        ; 
        //发送验证码按钮 button3
        .
        setToolTipText
        (
        "发送验证码"
        )
        ;
        // 悬停显示 JMenu Menubutton3 
        = 
        new 
        JMenu
        (
        "注册账号"
        )
        ; 
        //注册账号按钮 Menubutton3
        .
        setToolTipText
        (
        "注册账号"
        )
        ;
        // 悬停显示 JMenu Menubutton4 
        = 
        new 
        JMenu
        (
        "已有账号,忘记密码?"
        )
        ; 
        //已有账号,忘记密码?按钮 Menubutton4
        .
        setToolTipText
        (
        "已有账号,忘记密码?"
        )
        ;
        // 悬停显示 JMenu Menubutton5 
        = 
        new 
        JMenu
        (
        "邮箱验证登录"
        )
        ; 
        //邮箱验证登录按钮 Menubutton5
        .
        setToolTipText
        (
        "邮箱验证登录"
        )
        ;
        // 悬停显示 JMenu Menubutton6 
        = 
        new 
        JMenu
        (
        "密码登录"
        )
        ; 
        //密码登录按钮 Menubutton6
        .
        setToolTipText
        (
        "密码登录"
        )
        ;
        // 悬停显示 
        // 字体设置 button1
        .
        setFont
        (
        new 
        Font
        (
        "微软雅黑"
        , Font
        .BOLD
        , 
        18
        )
        )
        ; button1
        .
        setForeground
        (Color
        .white
        )
        ; 
        // 设置前景色 button1
        .
        setBackground
        (
        new 
        Color
        (
        0x08BDFD
        )
        )
        ; button1
        .
        setDefaultCapable
        (
        true
        )
        ; button1
        .
        setBounds
        (
        (
        this
        .
        getWidth
        (
        ) 
        - 
        120 
        - 
        180
        ) 
        / 
        2
        , 
        250
        , 
        120
        , 
        30
        )
        ; 
        // 设置按钮位置,及按钮大小 button1
        .
        setCursor
        (
        new 
        Cursor
        (Cursor
        .HAND_CURSOR
        )
        )
        ; 
        //鼠标手势的设置 button2
        .
        setFont
        (
        new 
        Font
        (
        "微软雅黑"
        , Font
        .BOLD
        , 
        18
        )
        )
        ; button2
        .
        setForeground
        (Color
        .white
        )
        ; 
        // 设置前景色 button2
        .
        setBackground
        (
        new 
        Color
        (
        0x08BDFD
        )
        )
        ; button2
        .
        setDefaultCapable
        (
        true
        )
        ; button2
        .
        setCursor
        (
        new 
        Cursor
        (Cursor
        .HAND_CURSOR
        )
        )
        ;
        //鼠标手势的设置 button2
        .
        setBounds
        (
        (
        this
        .
        getWidth
        (
        ) 
        - 
        120 
        + 
        180
        ) 
        / 
        2
        , 
        250
        , 
        120
        , 
        30
        )
        ; 
        // 设置按钮位置,及按钮大小 button3
        .
        setFont
        (
        new 
        Font
        (
        "微软雅黑"
        , Font
        .BOLD
        , 
        18
        )
        )
        ; button3
        .
        setForeground
        (
        new 
        Color
        (
        1
        )
        )
        ; 
        // 设置前景色 button3
        .
        setBackground
        (
        new 
        Color
        (
        0x08BDFD
        )
        )
        ; button3
        .
        setDefaultCapable
        (
        true
        )
        ; button3
        .
        setCursor
        (
        new 
        Cursor
        (Cursor
        .HAND_CURSOR
        )
        )
        ;
        //鼠标手势的设置 Menubutton3
        .
        setFont
        (
        new 
        Font
        (
        "微软雅黑"
        , Font
        .BOLD
        , 
        12
        )
        )
        ; Menubutton3
        .
        setForeground
        (
        new 
        Color
        (
        0x02FCFC
        )
        )
        ; 
        // 设置前景色 Menubutton3
        .
        setUI
        (
        new 
        BasicButtonUI
        (
        )
        )
        ; 
        //恢复基本视觉效果 Menubutton3
        .
        setBounds
        (
        5
        , 
        280
        , 
        85
        , 
        20
        )
        ; 
        // 设置按钮位置,及按钮大小 Menubutton3
        .
        setContentAreaFilled
        (
        false
        )
        ; 
        // 设置按钮透明 Menubutton3
        .
        setCursor
        (
        new 
        Cursor
        (Cursor
        .HAND_CURSOR
        )
        )
        ; Menubutton4
        .
        setFont
        (
        new 
        Font
        (
        "微软雅黑"
        , Font
        .BOLD
        , 
        12
        )
        )
        ; Menubutton4
        .
        setForeground
        (
        new 
        Color
        (
        0xC3FFFF
        )
        )
        ; 
        // 设置前景色 Menubutton4
        .
        setUI
        (
        new 
        BasicButtonUI
        (
        )
        )
        ; 
        //恢复基本视觉效果 Menubutton4
        .
        setBounds
        (width
        -
        150
        , 
        280
        , 
        150
        , 
        20
        )
        ; 
        // 设置按钮位置,及按钮大小 Menubutton4
        .
        setContentAreaFilled
        (
        false
        )
        ; 
        // 设置按钮透明 Menubutton4
        .
        setCursor
        (
        new 
        Cursor
        (Cursor
        .HAND_CURSOR
        )
        )
        ; Menubutton5
        .
        setFont
        (
        new 
        Font
        (
        "微软雅黑"
        , Font
        .BOLD
        , 
        15
        )
        )
        ; Menubutton5
        .
        setForeground
        (
        new 
        Color
        (
        0x383939
        )
        )
        ; 
        // 设置前景色 Menubutton5
        .
        setUI
        (
        new 
        BasicButtonUI
        (
        )
        )
        ; 
        //恢复基本视觉效果 Menubutton5
        .
        setBounds
        (width
        -
        190
        , 
        225
        , 
        100
        , 
        20
        )
        ; 
        // 设置按钮位置,及按钮大小 Menubutton5
        .
        setContentAreaFilled
        (
        false
        )
        ; 
        // 设置按钮透明 Menubutton5
        .
        setCursor
        (
        new 
        Cursor
        (Cursor
        .HAND_CURSOR
        )
        )
        ; Menubutton6
        .
        setFont
        (
        new 
        Font
        (
        "微软雅黑"
        , Font
        .BOLD
        , 
        15
        )
        )
        ; Menubutton6
        .
        setForeground
        (
        new 
        Color
        (
        0x383939
        )
        )
        ; 
        // 设置前景色 Menubutton6
        .
        setUI
        (
        new 
        BasicButtonUI
        (
        )
        )
        ; 
        //恢复基本视觉效果 Menubutton6
        .
        setBounds
        (width
        -
        190
        , 
        225
        , 
        100
        , 
        20
        )
        ; 
        // 设置按钮位置,及按钮大小 Menubutton6
        .
        setContentAreaFilled
        (
        false
        )
        ; 
        // 设置按钮透明 Menubutton6
        .
        setCursor
        (
        new 
        Cursor
        (Cursor
        .HAND_CURSOR
        )
        )
        ; 
        /* 分区模块布局 */ 
        //小盒子,设计用户名布局模块 ubox
        .
        add
        (uLabel
        )
        ; ubox
        .
        add
        (Box
        .
        createHorizontalStrut
        (
        5
        )
        )
        ;
        //插入中间盒子宽度为5,作为相邻文本的空隙 ubox
        .
        add
        (uField
        )
        ; 
        //小盒子,设计密码框布局模块 pbox
        .
        add
        (pLabel
        )
        ; pbox
        .
        add
        (Box
        .
        createHorizontalStrut
        (
        5
        )
        )
        ;
        //插入中间盒子宽度为5,作为相邻文本的空隙 pbox
        .
        add
        (pFd
        )
        ; 
        //大盒子 vbox
        .
        add
        (Box
        .
        createVerticalStrut
        (
        80
        )
        )
        ;
        //插入中间盒子高度为80,作为上下文本的空隙 vbox
        .
        add
        (ubox
        )
        ; vbox
        .
        add
        (Box
        .
        createVerticalStrut
        (
        60
        )
        )
        ;
        //插入中间盒子高度为60,作为上下文本的空隙 vbox
        .
        add
        (pbox
        )
        ; uField
        .
        setText
        (
        "weh"
        )
        ; 
        //设置默认账号 pFd
        .
        setText
        (
        "123456"
        )
        ; 
        //设置默认密码 panel
        .
        setUI
        (
        new 
        BasicPanelUI
        (
        )
        )
        ; 
        //恢复基本视觉效果 panel
        .
        setOpaque
        (
        false
        )
        ; 
        // 面板透明 panel
        .
        add
        (vbox
        , BorderLayout
        .CENTER
        )
        ;
        //vbox盒子居中 
        this
        .
        setDefaultCloseOperation
        (EXIT_ON_CLOSE
        )
        ; 
        this
        .
        add
        (button1
        )
        ; 
        this
        .
        add
        (button2
        )
        ; 
        this
        .
        add
        (Menubutton3
        )
        ; 
        this
        .
        add
        (Menubutton4
        )
        ; 
        this
        .
        add
        (Menubutton5
        )
        ; 
        this
        .
        add
        (Menubutton6
        )
        ; 
        this
        .
        add
        (panel
        )
        ; Menubutton6
        .
        setVisible
        (
        false
        )
        ; 
        this
        .
        setVisible
        (
        true
        )
        ; 
        this
        .
        setResizable
        (
        false
        )
        ; 
        this
        .
        setAlwaysOnTop
        (
        true
        )
        ;
        //设置窗口最上层 QQField 
        = 
        new 
        JTextField
        (
        )
        ; 
        //输入框 tField 
        = 
        new 
        JTextField
        (
        )
        ; 
        //输入框 QQField
        .
        setVisible
        (
        false
        )
        ; tField
        .
        setVisible
        (
        false
        )
        ; button3
        .
       

标签: weh快速连接器tvr60

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

 锐单商城 - 一站式电子元器件采购平台  

 深圳锐单电子有限公司