JAVA实现简单的登录界面

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

** 我们首先引入界面开发的相关概念

1 .界面开发框架: 界面开发 接口与监听器 图形图像项目
2.界面开发包:包:用来给代码分类的
包名:全小写,用点. 来分隔不同文件夹包 java.awt
早期的界面开发包: 保留使用 颜色 尺寸 布局类 javax.swing
升级之后的界面开发包: 所有的类都可以使用 主要是可视化组件类

**

界面实现思路

在这里插入图片描述

1:创建窗口 设置窗体的属性
2:设置 布局方式
3:创建组件对象 设置组件的属性与内容
4:将组件对象加载到窗体对象上

操作时需要有一个界面 JFrame、输入框 JTextFiled、密码输入框JPasswordField、按钮 JButton,图标图片ImageIcon等系统自带类。

实现登陆界面

代码如下(示例):

import java.awt.*;
import javax.swing.*;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;

public class Login {
    //  定义Login类


    public static void main(String[] args) {
       Login login = new Login();
        login.initUI();         //在Login类中调用 initUI()方法

        /*
        Login.intUI();
         */
    }


    public static void initUI() {

        JFrame frame = new JFrame();      //实例化JFrame对象

        frame.setTitle("Login");// 设置窗体的标题
        frame.setSize(400, 650);// 设置窗体的大小,单位是像素px
        frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);//  写常量名  尽量不写数字 设置窗体的关闭操作;3表示关闭窗体退出程序; 2、1、0
        frame.setLocationRelativeTo(null);// 设置窗体相对于另一个组件的居中位置,参数null表示窗体相对于屏幕的中央位置
        frame.setResizable(false);// 设置禁止调整窗体大小

        //流式布局,布局窗体 从左至右依次摆放 整体默认居中 ,一行充满 摆放到下一行
        FlowLayout fl = new FlowLayout(FlowLayout.CENTER, 10, 10);

        frame.setLayout(fl);  //frame框架调用流式布局方法;


         // 图片需要调用ImageIcon类  构造方法(文件路径+文件名.格式)
         //图片是内容 不是组件 所以图片对象必须要绑定到组件上才能显示到界面上
        ImageIcon icon = new ImageIcon("C:\\Users\\zhuaba\\Desktop\\a.png");
        JLabel labIcon = new JLabel(icon);    // 用标签来接收图片,实例化JLabel标签对象,该对象显示icon图标
        Dimension dim = new Dimension(400,300);  //调用Dimension类的构造方法,实例化dim对象  尺寸 dimension
        labIcon.setPreferredSize(dim);              //优先考虑尺寸
        frame.add(labIcon);           //将标签对象 labicon加载到窗体frame上


        JLabel labName = new JLabel("账号:");    //实例化标签类 labName对象,显示字符串 “账号"
        frame.add(labName);  //将 labName对象 加载到窗体上

        // 文本输入框
        JTextField nameInput = new JTextField(); //实例化标签类 nameInput对象
        Dimension dim1 = new Dimension(300,30); //实例化 dim1对象
        nameInput.setPreferredSize(dim1); //调用 setPreferredSize方法 改变文本输入框尺寸
        frame.add(nameInput);  //将文本输入框 加载到窗体上


        JLabel labpass= new JLabel("密码:");  //实例化标签类 labpass对象
        frame.add(labpass);  //将标签对象加载到窗体上


        //Pwd输入框
        JPasswordField pwdInput = new JPasswordField(); //实例化JPasswordField
        pwdInput.setPreferredSize(dim1);//设置组件大小
        frame.add(pwdInput); //将输入框加载到窗体上

        JButton button=new JButton(); //实例化Jbutton
        //Dimension dim2 = new Dimension(100,30);
        button.setText("登录");
        button.setSize(100,30); //设置组件大小
        frame.add(button);  //将按钮加载到窗体上


        //窗体可视化需要将所有组件加载完再执行
        frame.setVisible(true);// 设置窗体为可见
        //button.setVisible (true);


        // 监听器 :将实现了ActionListener的类 创建对象 绑定给按钮对象
        LoginListener loginListener = new LoginListener ();
        button.addActionListener (loginListener);
/*
        在这里直接获取输入框里面的字符串  但是程序执行到这里 ,界面还没有显示到屏幕上面 不存在用户输入账号密码。
        获取的账号和密码是空的,所以要将输入框对象传入监听器对象中,在监听器方法(点击按钮会自动调用的方法)中使用输入输入框对象,获取文本。

        1.先在监听器中定义两个输入框对象变量名;
        2.监听器对象可以调用输入框对象变量名,对其赋值(实际的输入框对象地址);

 */
         String username=nameInput.getText();
         String pwd=pwdInput.getText();
         System.out.println("直接在界面初始化当中获取用户名:" + username+ " 密码: " + pwd);//先赋一个空值,保证输入框显示能够获取,在输入后,调用getText()方法覆盖空的值。
         loginListener.textName2=nameInput;  //将输入框对象传给监听器
         loginListener.textPwd2=pwdInput;

**
效果如下:

在这里插入图片描述

监听器

  • 点击按钮之后 可以执行自己想要执行的代码

  • 如何知道按钮被点击了:

    • 监听器: 接口
    • 接口: 实现类
      • 1: 创建一个类实现 监听器接口 (implements)
      • 2: 在类中实现监听器接口的方法
      • 3: 将这个写好的类 创建对象 绑定给按钮对象

**

监听器的实现

在本项目中我们使用的是动作监听器来监听按钮是否被点击 。
需要接口 java.awt.event.ActionListener
代码如下(示例):

import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class LoginListener implements ActionListener {
    JTextField textName2;   //  定义两个输入框变量     类名 对象名
    JPasswordField textPwd2;

    /**
     * 查看 ActionListener 的 源码 重写监听器中的方法
     * e
     */

    public void actionPerformed(ActionEvent e) {
        // 获取按钮上的字符串
        String btnstr = e.getActionCommand(); //定义变量 btnstr 通过getActionCommand()方法 ,获取按钮上的字符串;
            //验证监听器 监听点击按钮的动作事件
        System.out.println(btnstr);
        System.out.println("登录按钮被点击了");

        //获取输入框的字符
        String username = textName2.getText();
        String pwd = textPwd2.getText();
        System.out.println("点击按钮后获取用户名:" + username + "点击按钮后获取密码" + pwd);//验证是否获取用户数输入的username和pwd

        //验证账号登录的半段
        if (username.equals("gc") && pwd.equals("123456")) {
            //写一个小弹窗
            JOptionPane.showMessageDialog(null, "登录成功");
        } else {

            JOptionPane.showMessageDialog(null,"登陆失败");
        }
    }

}

需要注意的是 ,监听器的方法需要被重写才能够执行调用。

总结

例如:以上就是今天要讲的内容,本文仅仅简单介绍了登录界面的可视化,下面我们还可以绑定监听器,进行逻辑运算,添加例如登录,注册,验证码验证等相应功能。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值