java实现简单登录界面的实战过程
作者:ZERO_HOPE 发布时间:2022-02-07 20:19:51
一、概要
我们可以用java实现简单的登录界面。
如上效果,直观但也需要一步一步来完成,从界面弹窗的设置,图片的插入,文本框的设置,到登录的按钮,全由代码来实现。
二、分类部分
LoginUI类:实现界面的设置,构建方法,封装好所有的界面开发代码
①initUI方法 :1、创建窗体对象;
2、设置窗体的相关属性(标题、尺寸、大小、关闭、可视化);
3、创建组件对象,按钮,输入框;
4、界面窗口添加按钮;
5、按钮添加 * 。
②main方法 :用自己的类创建对象,调用自己的方法
ButtonAction类: * ,获取鼠标点击按钮的信息,(继承ActionListener)
我们添加按钮后,需要一个点击按钮后有反应的功能,故设置此类,能在点击按钮后做出反应。
比如此处我们设置初始账户admin,密码123456,可以输入后,点击登录,跳出登录成功的界面。
①成员方法actionPerformed,传入参数(actionPerformed)
②成员变量
public int count = 0;
//先声明一个输入框的引用地址存储变量;
public JTextField nameJtf;
public JTextField pwdJtf;
public JFrame jf1;
继承ActionListener后,必须重写里面的方法actionPerformed(用ctrl+鼠标左键 看到源文件代码)
此即 * 。
三、代码实现
LoginUI类:实现界面的设置,构建方法,封装好所有的界面开发代码
①initUI方法 :1、创建窗体对象;jf
2、设置窗体的相关属性(标题、尺寸、大小不变、位置、居中显示、关闭、可视化);setTitle,setSize,setResizable,setLocation,setLocationRelativeTo,setDefaultCloseOperation,setVisible.
3、创建组件对象,按钮,输入框,图片标签;JButton,JLabal,JTextField,ImageIcon,
4、界面窗口添加按钮:jf.add()
5、按钮添加 * 。ButtonAction btnactino = new ButtonAction();
btnaction.addActionListener(btnaction)
.
②main方法 :用自己的类创建对象,调用自己的方法;
//LoginUI类:实现界面的设置,构建方法,封装好所有的界面开发代码
//①initUI方法 :1、创建窗体对象;
//2、设置窗体的相关属性(标题、尺寸、大小、关闭、可视化);
//3、创建组件对象,按钮,输入框;
//4、界面窗口添加按钮;
//5、按钮添加 * 。
//②main方法 :用自己的类创建对象,调用自己的方法
public class LoginUI {
//一、界面方法
public void initUI(){
//1:创建一个窗体的对象;
JFrame jf = new JFrame();
//2:设置窗体的相关属性:标题,尺寸,关闭选项操作 可视化
jf.setTitle("登录界面");
jf.setSize(500,800); //像素单位
jf.setResizable(false); //尺寸固定
//jf.setLocation(1000,400); //位置固定 可更改
jf.setLocationRelativeTo(null); //居中显示
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //退出方式
jf.setVisible(true);
FlowLayout f1 = new FlowLayout();//流式布局
jf.setLayout(f1);
//3:创建组件对象,按钮,输入框
//按钮
JButton btn = new JButton ("登录");
//标签
JLabel namejla = new JLabel("账号: ");
JLabel pwdjla = new JLabel ("密码: ");
//输入框
JTextField nameJtf = new JTextField();
JTextField pwdJtf = new JTextField();
//图片标签
ImageIcon imgicon = new ImageIcon("C:\\Users\\Desktop\\picture\\picture.jpeg");//图片插入,更改图片路径,需要注意后缀
JLabel imgjla = new JLabel(imgicon);
//组件设置尺寸
Dimension dimsize = new Dimension (420,50);
nameJtf.setPreferredSize(dimsize);
pwdJtf.setPreferredSize(dimsize);
//4:界面窗体添加按钮
jf.add(imgjla);
jf.add(namejla);
jf.add(nameJtf);
jf.add(pwdjla);
jf.add(pwdJtf);
jf.add(btn);
//可视化在所有组件加载之后
jf.setVisible(true);//可视化 交给系统渲染到屏幕上
//按钮添加 *
ButtonAction btnaction = new ButtonAction();
btn.addActionListener(btnaction);
btnactino.count=100;
btnactino.nameJtf= nameJtf;
btnactino.pwdJtf= pwdJtf;
}
//二、主函数部分
public static void main(String[] args) {
//创建自己写的类的对象;
LoginUI loginui = new LoginUI();
//调用方法
loginui.initUI();
}
}
ButtonAction类: * ,获取鼠标点击按钮的信息,(继承ActionListener)
public class ButtonAction implements ActionListener{// *
public int count = 0;
//先声明一个输入框的引用地址存储变量;
public JTextField nameJtf;
public JTextField pwdJtf;
public JFrame jf1;
// *
public void actionPerformed(ActionEvent e) {
//获取输入框中的字符串
String nameText = nameJtf.getText();
String pwdText = pwdJtf.getText();
//比较账号 密码 设置初始账户admin,密码123456
if(nameText.equals("admin") || nameText.equals("user1")) {
System.out.println("比较成功!!");
if(pwdText.equals("123456") || pwdText.equals("a123456")) {
System.out.println("比较成功!!");
//创建一个新窗体弹出
JFrame jf = new JFrame();
jf.setTitle("登录响应!!");
jf.setSize(500,200);
jf.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
java.awt.FlowLayout f1 = new java.awt.FlowLayout();
jf.setLayout(f1);
JLabel jla =new JLabel ("登录成功!!");
jf.add(jla);
jf.setVisible(true);
jf.setLocationRelativeTo(null);//居中显示
}
}
}
}
来源:https://blog.csdn.net/ZERO_HOPE/article/details/122701417


猜你喜欢
- Dart实体类格式class CategoryMo { String name; int count;CategoryMo({this.na
- Java是怎么跨平台的我们上计算机课的时候老师讲过:"计算机只能识别0和1,所以我们写的程序要经过编译器翻译成0和1组成的二进制格
- 第一次下载好Android源代码工程后,我们通常是在Android源代码工程目
- Android Spinner 组件Spinner: 下拉组件使用事项:布局在XML 中实现,具体的数据在JAVA 代码中实现;所用知识点:
- 1.Semaphore的概述public class Semaphore extends Object implements Seriali
- 昨天写了一篇Redis布隆过滤器相关的命令的文章,今天来说一说springboot中如何简单在代码中使用布隆过滤器吧。目前市面上也有好几种实
- Mybatis typeAlias配置1.定义别名<typeAliases> <ty
- 需求:用户和账户一对一关系,查询账户时实现用户的延迟加载思路:根据id查询,需要延迟加载的一方1、用户实体类package com.yl.b
- 1.map遍历快速实现边距,文字自适应改变大小Container( // padding: EdgeI
- 一、问题描述在C#中is,as,using关键字具有其特点及使用场景,其中is关键字用于检查该对象是否与给定类型兼容,as关键字用于将对象转
- Map 中ConcurrentHashMap是线程安全的,但不是所有操作都是,例如get()之后再put()就不是了,这时使用merge()
- 首先引入依赖 implementation 'com.github.bumptech.glide:glid
- 1、获取Class对象在 Java API 中,提供了获取 Class 类对象的三种方法:第一种,使用 Class.forName 静态方法
- 示例代码:<%@ Page Language="C#" AutoEventWireup="true&qu
- — 遇到问题今天在IDEA里面运行项目的时候报了一个错,如下图所示:— 找到问题根源其实控制台给出的错误信息提示说的很明显:类加载器加载文件
- 在java中常常会遇到这样一个问题,在实际应用中,总会碰到对List排序并过滤重复的问题,如果List中放的只是简单的String类型过滤s
- 1、在pom.xml中引入actuator, security依赖 <dependency> &nbs
- 本文实例为大家分享了Swing拆分窗格控件JSplitPane的使用方法,供大家参考,具体内容如下package day1115;impor
- 本文为大家分享两个实例,相信大家一定会喜欢。实例1:随机生成验证码图片并将之输出为一个png文件效果图:import java.awt.Co
- 相同点:二者都是Java的虚拟机,用来执行Java程序区别:javaw.exe运行程序时不会输出控制台信息,如果是双击打开jar文件的话(假