1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > java学习之Swing篇(一)——QQ登录界面

java学习之Swing篇(一)——QQ登录界面

时间:2020-08-04 07:36:37

相关推荐

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登录界面就完成了,至于后面其它功能的实现则需要进一步的学习,敬请期待!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。