文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Java Swing 简单的登录注册窗口

2023-12-25 13:25

关注

前言

最近在学习Java Swing 写了一个简单的登录注册窗口,
该项目包含了对JFrame的创建,和一些组件的练习并且加入了简单的事件监听和简单的用户名密码判断。
登录和注册的页面只画出来了没有进行其他的组件添加

介绍

1,Swing是一个为Java设计的GUI工具包。
2,Swing是JAVA基础类的一部分。
3,Swing包括了图形用户界面(GUI)器件如:文本框,按钮,分隔窗格和表。
4,Swing提供许多比AWT更好的屏幕显示元素。它们用纯Java写成,所以同Java本身一样可以跨平台运 行,这一点不像AWT。它们是JFC的一部分。它们支持可更换的面板和主题(各种操作系统默认的特有主题),然而不是真的使用原生平台提供的设备,而是仅仅在表面上模仿它们。这意味着你可以在任意平台上使用JAVA支持的任意面板。轻量级组件的缺点则是执行速度较慢,优点就是可以在所有平台上采用统一的行为。

分析

1,先创建一个JFrame窗口并对其进行设置
2,添加相应的组件
3,给用户名和密码加上判断
4,添加监听事件到相应的按钮上
5,绘制登录和注册的页面

项目展示

登录主页面

在这里插入图片描述

用户名密码判断

在这里插入图片描述
在这里插入图片描述

登录成功进入页面

在这里插入图片描述

注册页面

在这里插入图片描述

代码展示

Index类(主类)
public class Index {    public static void main(String[] args) {        Creat l=new Creat();        l.creatJf();    }}
Create类(基本上每行都有注释)
package com.qiku.work.work0926;import javax.swing.*;import java.awt.*;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;public class Creat {    public void creatJf() {                      //创建JFrame实例        JFrame frame = new JFrame("Login");        //设置窗体宽高        frame.setSize(350, 200);        frame.setLocationRelativeTo(null); //设置窗口居中显示        //设置关闭窗口结束程序        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);        //设置窗体禁止调节大小        frame.setResizable(false);              //创建面板        JPanel jPanel = new JPanel();        jPanel.setLayout(null); //布局设置为空,之后可以手动设置组件的坐标位置和大小        //创建JLabel(用户名)        JLabel user_label = new JLabel("用户名:");        user_label.setFont(new Font("微软雅黑", 0, 13));        //定义组件的位置和宽高        user_label.setBounds(10, 20, 80, 25);        //把组件添加到JPanel上        jPanel.add(user_label);        //创建文不域用于用户输入        JTextField user_text = new JTextField(20);        //设置文本域的位置和宽高        user_text.setBounds(100, 20, 165, 25);        //把文本域组件添加上        jPanel.add(user_text);        //创建JLabel(密码)        JLabel password_label = new JLabel("密码:");        password_label.setFont(new Font("微软雅黑", 0, 13));        //设置位置和大小        password_label.setBounds(10, 50, 80, 25);        //添加组件        jPanel.add(password_label);        //密码文本域输入        JPasswordField password_text = new JPasswordField();  //密码输入框,输入密码自动隐藏        //JTextField password_text = new JTextField(20);        password_text.setBounds(100, 50, 165, 25);        jPanel.add(password_text);        //登录按钮        JButton login = new JButton("登录");        login.setBounds(80, 100, 80, 25);        //注册按钮        JButton register = new JButton("注册");        register.setBounds(200, 100, 80, 25);        jPanel.add(register);        jPanel.add(login);        //添加面板        frame.add(jPanel);        //设置可见        frame.setVisible(true);        LoginListener ll = new LoginListener(frame, user_text, password_text);        login.addActionListener(ll);        ReListener re = new ReListener();        register.addActionListener(re);    }    public class ReListener implements ActionListener {        @Override        public void actionPerformed(ActionEvent e) {            Register.reShow();        }    }    public class LoginListener implements ActionListener {        private javax.swing.JTextField jt;//账号输入框对象        private javax.swing.JPasswordField jp;//密码输入框对象        private javax.swing.JFrame login;//定义一个窗体对象        public LoginListener(javax.swing.JFrame login, javax.swing.JTextField jt, javax.swing.JPasswordField jp) {            this.login = login;//获取登录界面            this.jt = jt;//获取登录界面中的账号输入框对象            this.jp = jp;//获取登录界面中的密码输入框对象        }        public void actionPerformed(ActionEvent e) {            //用户名密码判断            if (jt.getText().equals("user") && jp.getText().equals("root")) {                //设置弹框                JOptionPane.showMessageDialog(null, "登陆成功", "成功", 1);                Login.createShow();                login.setVisible(false);            } else if (!(jt.getText().equals("1") && jp.getText().equals("1"))) {                JOptionPane.showMessageDialog(null, "登录名或密码错误", "失败", 0);            }        }    }}
Login类
package com.qiku.work.work0926;import javax.swing.*;import java.awt.*;public class Login {    public static void createShow() {        //创建JFrame实例        JFrame frame = new JFrame("欢迎您");        //设置窗体宽高        frame.setSize(600, 400);        frame.setLocationRelativeTo(null); //设置窗口居中显示        //设置窗体禁止调节大小        frame.setResizable(false);        //创建面板        JPanel jPanel = new JPanel();        jPanel.setLayout(null);        JLabel label = new JLabel("欢迎您!");        label.setBounds(250, 0, 100, 25);        label.setFont(new Font("微软雅黑", Font.BOLD, 25));        label.setForeground(Color.red);        jPanel.add(label);        //关闭窗口结束程序        frame.setDefaultCloseOperation(frame.EXIT_ON_CLOSE);        //显示窗口        frame.setVisible(true);        //添加面板        frame.add(jPanel);        //设置可见        frame.setVisible(true);    }}
Register类(和Login差不多一样)
package com.qiku.work.work0926;import javax.swing.*;import java.awt.*;public class Register {    public static void reShow() {        //创建JFrame实例        JFrame frame = new JFrame("欢迎注册");        //设置窗体宽高        frame.setSize(800, 400);        frame.setLocationRelativeTo(null); //设置窗口居中显示        //设置窗体禁止调节大小        frame.setResizable(false);        //创建面板        JPanel jPanel = new JPanel();        jPanel.setLayout(null);        JLabel label = new JLabel("欢迎来到注册页面!");        label.setBounds(280, 0, 250, 25);        label.setFont(new Font("微软雅黑", Font.BOLD, 25));        label.setForeground(Color.red);        jPanel.add(label);        //关闭窗口结束程序        frame.setDefaultCloseOperation(frame.EXIT_ON_CLOSE);        //显示窗口        frame.setVisible(true);        //添加面板        frame.add(jPanel);        //设置可见        frame.setVisible(true);    }}

来源地址:https://blog.csdn.net/weixin_46760692/article/details/127096049

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯