Java实现简单GUI登录和注册界面

 更新时间:2022年04月26日 18:14:42   作者:全 洛  
这篇文章主要为大家详细介绍了Java实现简单GUI登录和注册界面,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文实例为大家分享了Java实现简单GUI登录和注册界面的具体代码,供大家参考,具体内容如下

先看效果图:

登陆界面:

注册界面:

实现代码如下:

一、登陆界面

package cn.bms.view;

import java.awt.Color;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.border.MatteBorder;

import cn.bms.tools.GUITools;

/*
 * 登录窗口
 */
@SuppressWarnings("serial")
public class AdminLogin extends JFrame {
    private JPanel contentPanel = new JPanel();
    // Label标签存放背景图片
    private JLabel label;
    // 设置按钮组件
    private JButton login = new JButton("登录"), register = new JButton("注册");

    private JLabel jlb1 = new JLabel("用户名:"), jlb2 = new JLabel("密码:"), jlbtitle = new JLabel("登录界面");
    // 设置文本框组件
    private JTextField admin = new JTextField(), password = new JTextField();

    public AdminLogin() {
        this.init();
        this.addListener();
    }

    private void init() {
        this.setTitle("管理员登陆界面");
        this.setSize(500, 350);
        GUITools.center(this);
        ImageIcon image1 = new ImageIcon("837878.jpg"); // 界面背景图片
        JLabel backLabel = new JLabel();
        backLabel.setIcon(image1);
        label = new JLabel(image1);
        label.setBounds(0, 0, 1000, 400);
        // 在LayeredPane最底层上添加两个带图片的标签,并且label2在label上方
        this.getLayeredPane().add(label, new Integer(Integer.MIN_VALUE));
        // 将内容面板设置为透明,就能够看见添加在LayeredPane上的背景。
        ((JPanel) this.getContentPane()).setOpaque(false);

        /*
         * 添加组件到contentPanel容器中 布局方式为自由布局。
         */
        contentPanel.setLayout(null);
        add(admin);
        add(password);
        add(login);
        add(register);
        add(jlb1);
        add(jlb2);
        add(jlbtitle);

        /*
         * 组件绝对位置
         */
        jlb1.setBounds(50, 130, 90, 25);
        jlb1.setForeground(Color.WHITE);
        admin.setBounds(95, 130, 300, 25);
        password.setBounds(95, 154, 300, 25);
        jlb2.setBounds(50, 154, 90, 25);
        jlb2.setForeground(Color.WHITE);
        register.setBounds(95, 225, 90, 20);
        login.setBounds(315, 225, 90, 20);
        jlbtitle.setBounds(180, 45, 200, 50);
        Font f = new Font("微软雅黑", Font.BOLD, 30);
        jlbtitle.setFont(f);
        jlbtitle.setForeground(Color.BLUE);

        /*
         * 组件透明化
         */
        admin.setOpaque(true);
        password.setOpaque(true);
        contentPanel.setOpaque(false);
        getContentPane().add(contentPanel);

        /*
         * 组件边框颜色
         */
        textSet(admin);
        textSet(password);
    }

    /*
     * JTextField文本框设置方法.
     */
    private void textSet(JTextField field) {
        field.setBackground(new Color(255, 255, 255));
        field.setPreferredSize(new Dimension(150, 28));
        MatteBorder border = new MatteBorder(0, 0, 2, 0, new Color(192, 192, 192));
        field.setBorder(border);
    }

    /*
     * 事件监听
     */
    private void addListener() {
        login.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                forLogin(admin.getText(), password.getText());
            }

        });
        register.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                forRegister();
            }

        });
    }

    // 登录方法
    public void forLogin(String admin, String pwd) {
    }

    // 注册方法
    public void forRegister() {
    }
}

二、注册界面

package cn.bms.view;

import java.awt.Color;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.border.MatteBorder;

import cn.bms.controller.AdminLoginController;
import cn.bms.tools.GUITools;

/*
 * 注册窗口
 */
@SuppressWarnings("serial")
public class AdminRegister extends JFrame {
    private JPanel contentPanel = new JPanel();
    // Label标签存放背景图片
    private JLabel label;
    // 设置按钮组件
    private JButton ok = new JButton("确定注册"), back = new JButton("返回登录");

    private JLabel jlb1 = new JLabel("用户名:"), jlb2 = new JLabel("密码:"), jlb3 = new JLabel("确认密码:"),
            jlbtitle = new JLabel("注册界面");
    // 设置文本框组件
    private JTextField admin = new JTextField(), password1 = new JTextField(), password2 = new JTextField();

    public AdminRegister() {
        this.init();
        this.addListener();
    }

    private void init() {
        this.setTitle("管理员注册界面");
        this.setSize(500, 350);
        GUITools.center(this);
        ImageIcon image1 = new ImageIcon("837878.jpg"); // 界面背景图片
        JLabel backLabel = new JLabel();
        backLabel.setIcon(image1);
        label = new JLabel(image1);
        label.setBounds(0, 0, 1000, 400);
        // 在LayeredPane最底层上添加两个带图片的标签,并且label2在label上方
        this.getLayeredPane().add(label, new Integer(Integer.MIN_VALUE));
        // 将内容面板设置为透明,就能够看见添加在LayeredPane上的背景。
        ((JPanel) this.getContentPane()).setOpaque(false);

        /*
         * 添加组件到contentPanel容器中 布局方式为自由布局。
         */
        contentPanel.setLayout(null);
        add(admin);
        add(password1);
        add(password2);
        add(ok);
        add(back);
        add(jlb1);
        add(jlb2);
        add(jlb3);
        add(jlbtitle);

        /*
         * 组件绝对位置
         */
        jlb1.setBounds(40, 130, 90, 25);
        jlb1.setForeground(Color.WHITE);
        admin.setBounds(95, 130, 300, 25);

        password1.setBounds(95, 154, 300, 25);
        jlb2.setBounds(40, 154, 90, 25);
        jlb2.setForeground(Color.WHITE);

        password2.setBounds(95, 178, 300, 25);
        jlb3.setBounds(40, 178, 90, 25);
        jlb3.setForeground(Color.WHITE);

        ok.setBounds(315, 225, 90, 20);
        back.setBounds(95, 225, 90, 20);

        jlbtitle.setBounds(180, 45, 200, 50);
        Font f = new Font("微软雅黑", Font.BOLD, 30);
        jlbtitle.setFont(f);
        jlbtitle.setForeground(Color.BLUE);

        /*
         * 组件透明化
         */
        admin.setOpaque(true);
        password1.setOpaque(true);
        password2.setOpaque(true);
        contentPanel.setOpaque(false);
        getContentPane().add(contentPanel);

        /*
         * 组件边框颜色
         */
        textSet(admin);
        textSet(password1);
        textSet(password2);
    }

    /*
     * JTextField文本框设置方法.
     */
    private void textSet(JTextField field) {
        field.setBackground(new Color(255, 255, 255));
        field.setPreferredSize(new Dimension(150, 28));
        MatteBorder border = new MatteBorder(0, 0, 2, 0, new Color(192, 192, 192));
        field.setBorder(border);
    }

    /*
     * 事件监听
     */
    private void addListener() {
        ok.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                setRegister(admin.getText(), password1.getText(), password2.getText());
            }
        });
        back.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                new AdminLoginController().setVisible(true);
            }
        });
    }

    // 实现注册账户方法
    public void setRegister(String admin, String pwd1, String pwd2) {
    }
}

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

相关文章

  • 微信、支付宝二码合一扫码支付实现思路(java)

    微信、支付宝二码合一扫码支付实现思路(java)

    这篇文章主要为大家详细介绍了微信、支付宝二码合一扫码支付实现思路,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-08-08
  • 用Java集合中的Collections.sort方法如何对list排序(两种方法)

    用Java集合中的Collections.sort方法如何对list排序(两种方法)

    本文通过两种方法给大家介绍java集合中的Collections.sort方法对list排序,第一种方式是list中的对象实现Comparable接口,第二种方法是根据Collections.sort重载方法实现,对collections.sort方法感兴趣的朋友一起学习吧
    2015-10-10
  • JVM加载class文件的原理机制实例详解

    JVM加载class文件的原理机制实例详解

    Java是一种具有动态性的解释型语言,类(class)只有被加载到JVM后才能运行,接下来通过本文给大家介绍JVM加载class文件的原理机制详解,感兴趣的朋友一起看看吧
    2022-04-04
  • springboot整合log4j的踩坑实战记录

    springboot整合log4j的踩坑实战记录

    log日志的重要性不言而喻,所以我们需要在系统内根据实际的业务进行日志的整合,下面这篇文章主要给大家介绍了关于springboot整合log4j的踩坑实战记录,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
    2022-04-04
  • Spring中的监听器SpringApplicationRunListener详解

    Spring中的监听器SpringApplicationRunListener详解

    这篇文章主要介绍了Spring中的监听器SpringApplicationRunListener详解,命名我们就可以知道它是一个监听者,分析springboot启动流程我们会发现,它其实是用来在整个启动流程中接收不同执行点事件通知的监听者,需要的朋友可以参考下
    2023-11-11
  • 如何使用hutool做本地缓存的工具类

    如何使用hutool做本地缓存的工具类

    这篇文章主要介绍了如何使用hutool做本地缓存的工具类,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-10-10
  • Java 异常java.lang.NoSuchFieldException解决方案

    Java 异常java.lang.NoSuchFieldException解决方案

    这篇文章主要介绍了Java 异常java.lang.NoSuchFieldException解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-10-10
  • SpringBoot拦截器实现项目防止接口重复提交

    SpringBoot拦截器实现项目防止接口重复提交

    基于SpringBoot框架来开发业务后台项目时,接口重复提交是一个常见的问题,本文主要介绍了SpringBoot拦截器实现项目防止接口重复提交,具有一定的参考价值,感兴趣的可以了解一下
    2023-09-09
  • Java HttpURLConnection使用方法与实例演示分析

    Java HttpURLConnection使用方法与实例演示分析

    这篇文章主要介绍了Java HttpURLConnection使用方法与实例演示,HttpURLConnection一个抽象类是标准的JAVA接口,该类位于java.net包中,它提供了基本的URL请求,响应等功能,下面我们来深入看看
    2023-10-10
  • mybatis拦截器实现通用权限字段添加的方法

    mybatis拦截器实现通用权限字段添加的方法

    这篇文章主要给大家介绍了关于mybatis拦截器实现通用权限字段添加的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用mybatis具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-09-09

最新评论