java学习之Swing篇(一)——QQ登录界面
前段时间学习了图形用户界面,博客一直没时间写,现在补上。
一、AWT与Swing
我们知道,java针对GUI设计提供了丰富的类库,而这些类均位于AWT和Swing这两个包中。
AWT(Abstract Window ToolKit 抽象窗口工具包):SUN公司最早推出的一套API,需要调用本地系统方法实现功能,属重量级控件。
Swing:在AWT的基础上,建立的一套图形界面系统,其中提供了更多的组件,而且完全由Java实现。增强了移植性,属轻量级控件。
二、AWT继承体系
AWT中组建可分为两个大类,分别为Component和MenuComponent。
MenuComponent:是所有与菜单相关组件的父类;
Component:除菜单外,其它AWT组件的父类,通常被称为组件,根据作用不同分为基本组件和容器组件。
基本组件:诸如按钮、文本框之类的图形界面元素,是可以使用的组件,但是必须依赖容器。
容器组件:是可以存储基本组件和容器组件的组件。
注:图片来源于《Java基础入门》
三、事件监听机制
事件源(组件):事件发生的场所,通常就是产生事件的组件;
监听器(Listener):负责监听事件源上发生的的事件,并对各种事件作出相应处理的对象(对象中包含事件处理器);
事件对象:封装了GUI组件上发生的特定事件(通常就是用户的一次操作);
事件处理器:监听器对象对接收的事件对象进行相应处理的方法。
四、QQ登录界面设计
实现要求:
1、仿QQ登录界面设计;
2、添加背景图片;
3、添加文本框、按钮、复选框等功能组件;
4、实现帐号密码验证;
5,验证成功弹出”欢迎登录“界面,失败提醒”帐号密码错误“。
具体代码如下:
QQ登录主界面设计
package com.Liao.Login0626;public class Login {public static void main(String[] args) {Login log=new Login();log.showFrame();}public void showFrame(){//构造一个窗体javax.swing.JFrame frame=new javax.swing.JFrame();//设置标题frame.setTitle("qq");//设置窗体大小frame.setSize(360, 450);//设置窗体居中frame.setLocationRelativeTo(null);//设置退出方式frame.setDefaultCloseOperation(3);//窗体布局格式(流式布局管理器)java.awt.FlowLayout fl=new java.awt.FlowLayout();frame.setLayout(fl);//添加图片javax.swing.ImageIcon icon=new javax.swing.ImageIcon("D:\\develop\\0.jpg");//添加标签javax.swing.JLabel jla=new javax.swing.JLabel(icon);frame.add(jla);//添加文本框javax.swing.JTextField jta_name1=new javax.swing.JTextField();//设置文本框大小java.awt.Dimension d1=new java.awt.Dimension(200,30);jta_name1.setPreferredSize(d1);//将文本框加至窗口frame.add(jta_name1);//创建按钮javax.swing.JButton bu_register=new javax.swing.JButton("注册帐号");java.awt.Dimension d2=new java.awt.Dimension(100,30);bu_register.setPreferredSize(d2);frame.add(bu_register);//添加文本框javax.swing.JTextField jta_name2=new javax.swing.JTextField();java.awt.Dimension d3=new java.awt.Dimension(200,30);jta_name2.setPreferredSize(d3);frame.add(jta_name2);//创建按钮javax.swing.JButton bu_sec=new javax.swing.JButton("找回密码");java.awt.Dimension d4=new java.awt.Dimension(100,30);bu_sec.setPreferredSize(d4);frame.add(bu_sec);//记住密码复选框javax.swing.JCheckBox jcb1=new javax.swing.JCheckBox("记住密码");frame.add(jcb1);//找回密码复选框javax.swing.JCheckBox jcb2=new javax.swing.JCheckBox("找回密码");frame.add(jcb2);//创建按钮javax.swing.JButton bu_login=new javax.swing.JButton("登录");java.awt.Dimension d5=new java.awt.Dimension(300,30);bu_login.setPreferredSize(d5);frame.add(bu_login);//设置窗体显示出来frame.setVisible(true);//创建监听器ButtonListener bl=new ButtonListener();//给按钮加监听器bu_login.addActionListener(bl);//将文本框对象及窗口对象传至按钮监听器类bl.setJt1(jta_name1);bl.setJt2(jta_name2);bl.setJt3(frame);}
}
按钮监听器
package com.Liao.Login0626;import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JTextField;public class ButtonListener implements ActionListener {private JFrame jf;private JTextField jt1;private JTextField jt2;public void setJt3(JFrame jframe) {jf = jframe;}public void setJt1(JTextField jtext) {jt1 = jtext;}public void setJt2(JTextField jtext) {jt2 = jtext;}public void actionPerformed(ActionEvent e) {String name1 = jt1.getText();// 输入的帐号String name2 = jt2.getText();// 输入的密码//创建欢迎窗口对象Welcome wel = new Welcome();//设置QQ登录主界面窗口不可见jf.setVisible(false);//帐号密码正确弹出欢迎窗口,错误弹出确认信息if ("123".equals(name1) && "456".equals(name2)) {wel.show();} else {JOptionPane pane = new JOptionPane();JOptionPane.showMessageDialog(pane, "帐号密码错误");}}
}
欢迎登录窗口界面
package com.Liao.Login0626;import java.awt.Font;import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.SwingConstants;public class Welcome {public void show() {JFrame jf = new JFrame("Result");// 设置窗体大小jf.setSize(360, 450);// 设置窗体居中jf.setLocationRelativeTo(null);// 设置退出方式jf.setDefaultCloseOperation(3);JLabel jl = new JLabel("欢迎登录", SwingConstants.CENTER);jl.setFont(new Font("宋体", Font.BOLD, 30));jf.add(jl);jf.setVisible(true);}
}
就这样,一个简单的QQ登录界面就完成了,至于后面其它功能的实现则需要进一步的学习,敬请期待!
java学习之Swing篇(一)——QQ登录界面相关推荐
- java的Swing组件模拟qq登录界面
代码来自传智播客第二版(java)图片可根据自己喜好下载相关图片,建议将图片放到工作空间的目录下面,这样就可以直接获取图片,例如以这个格式"xxx.jpg",xxx图片名,jpg格 ...
- java代码完全手写模仿qq登录界面
这是我模仿QQ2015版界面,实现的基本功能有登陆验证,重置等,当然直接复制代码运行是不一样的,还要注意自己插入自己的图片. 结果截图如下所示: import java.awt.BorderLayou ...
- java gui qq_JAVA-GUI练习实例,QQ登录界面
[实现界面] [分析] 整体用默认的BorderLayout(边界布局),分成上中下,分别用三个JPanel储存: 上:一张图片,用JLabel: 下:三个按钮 JButton 中间:用一个JTabb ...
- java如何引入qq登陆,Java Swing仿QQ登录界面 学习之用
闲来无事将早些时候已实现的QQ登录界面再实现了一遍,纯手工打造(意思是没有用NetBeans.MyEclipse的拖动功能). 源代码如下: package ibees.qq; import java ...
- java仿qq登录 界面设计,Java Swing仿QQ登录界面效果
本文实例为大家分享了Java Swing仿QQ登录界面展示的具体代码,供大家参考,具体内容如下 闲来无事将早些时候已实现的QQ登录界面再实现了一遍,纯手工打造(意思是没有用NetBeans.MyEcl ...
- java swing qq_使用java swing实现qq登录界面示例分享
用Java Swing做的一个QQ登录界面 import java.awt.Container; import java.awt.Image; import java.awt.event.Action ...
- QT学习日志(附:简易计算器,qq登录界面,简易绘图板,植物大战僵尸魔改版项目实践)
目录 写在前面 实训前一天 头文件无法生成 项目栏不见了 不知道如何发布程序 实训第一天(附简易计算器的实现) 自定义命名空间的相关问题 关于隐式调用构造函数的问题 实训第二天(不附地址薄的实现) 关 ...
- java gui界面设计qq_Java swing界面开发(仿QQ登录界面)
首先引入包的概念,包:给代码分类,提高的了代码的可读性,封装后方便管理.在包中类的引入:import 包名.类名;包名需小写,多单词用"."隔开.类名的命名规范:首字母大写其后的每 ...
- Swing学习----------QQ登录界面制作(二)
素材获取可关注微信公众号:开源IT,后台回复 "素材" 免费获取. 上次把QQ界面的主题框架实现了,但是还没有完成最小化,关闭按钮等的功能,这次重新完善了QQ登录界面的功能,本次更 ...
- JAVA编写QQ登录界面
在开始学习JAVA图形界面编程中,老师留的第一个作业就是编写一个QQ登录界面,本来我的JAVA就不怎么会写,所以就在网上找啊找,结果就翻到了某位大佬的博客,参考了许多,附上大佬链接http://wz9 ...
最新文章
- yolov3 pytorch错误集合
- [Golang学习笔记] 05 程序实体2 作用域访问权限和变量重声明
- 业务理解有偏差,产品和开发如何达成共识?
- unity 调用 .dll 或 .so时遇到的问题
- Shell特殊变量:Shell $0,$#,$*,$@,$?,$$和命令行参数
- python的flask实现第三方登录怎么写_Python语言的Flask框架应用程序实现使用QQ账号登录的方法...
- 读梁宁《一次失控引发的信任评估---我看胡紫薇事件》
- Qt之QLocalSocket
- var和function谁先优先执行_js函数和变量的执行顺序【易错】
- java中注解操作redis_spring boot —— redis 缓存注解使用教程
- 使用HttpClient连接池进行https单双向验证
- poj 2195 二分图带权匹配+最小费用最大流
- 用matlab编程怎么做,Matlab教程 Matlab入门图文教程
- 学习halcon之颜色识别
- Pytorch实战宝可梦分类-自定义数据集完成宝可梦分类案例分步解析
- Python turtle制作书法作品——《鸟鸣涧》
- 7-17 小红帽与大灰狼的故事
- hive的distribute by应用
- cmd 新增dns_cmd修改DNS,以及DNS大全
- 【鸿蒙 HarmonyOS】HarmonyOS 开发环境搭建 ( 下载 | 安装 | 启动 | 支持的设备与开发语言 )