GUI图形用户接口编写QQ登录界面

这个是我们的实训作业,我通过参考课本编写的QQ登录界面。Swing组件的整合使用——QQ登录界面。

QQ登录界面,因此可以使用JFrame容器实现。界面布局可分为5个区域,顶部、中部、底部、左侧、右侧,可以使用BorderLayout来管理布局,每个面板使用JPanel面板组件填充。当用户名和密码输入正确,会跳转登录成功界面。否则会弹出错误提示框。为界面登录按钮和关闭窗口注册监听器,进行事件监听。定义程序启动入口,用于启动Swing程序。

素材我会发到公众号: 回复0028“小白数据共享”

先附上效果图

这里主要分为三个部分:

  1. 创建QQ登陆界面,并添加布局管理器
  2. 创建区域面板类,划分容器区域
  3. 创建并注册监听器
  4. 编写程序入口

1.创建QQ登陆界面,并添加布局管理器
QQ.login.java

import javax.swing.*;
import java.awt.*;
public class QQ.login {//1、初始化一个JFrame窗口private static JFrame jf=new JFrame();public static void initLogin(){// 设置窗口尺寸jf.setSize(426, 300);// 设置窗口在屏幕显示位置jf.setLocation(497, 242);// 设置JFrame窗口边框不显示jf.setUndecorated(true);// 禁止改变窗口大小jf.setResizable(false);// 2、根据QQ登录界面效果,进行布局分配BorderLayout border_layout=new BorderLayout();jf.setLayout(border_layout);// 2.1、创建并加入顶部面板JPanel panepagestart=CreatePanel.createPangeStart(jf);jf.add(panepagestart,BorderLayout.PAGE_START);// 2.2、创建并加入左侧面板JPanel paneleft=CreatePanel.createleft();jf.add(paneleft,BorderLayout.LINE_START);// 2.3、创建并加入中部面板JPanel panecenter=CreatePanel.createcenter(jf);jf.add(panecenter,BorderLayout.CENTER);// 2.4、创建并加入右侧面板JPanel paneright =CreatePanel.createright();jf.add(paneright,BorderLayout.LINE_END);// 2.5、创建并加入底部面板JPanel panepageend=CreatePanel.createbottom();jf.add(panepageend,BorderLayout.PAGE_END);jf.setVisible(true);}
  1. 创建区域面板类,划分容器区域
    CreatePanel.java
import javax.swing.*;
import java.awt.*;
public class CreatePanel.login {private static Loginlistener ll=null;private static JPanel createPangeStart(JFrame jf){JPanel pane=new JPanel();pane.setLayout(null);pane.setPreferredSize(new Dimension(0,140));ImageIcon image=new ImageIcon("images/back.jpg");JLabel jl=new JLabel(image);jl.setBounds(0,0,426, image.getIconHeight());JButton btn=new JButton(new ImageIcon("images/close_normal.jpg"));btn.setBounds(403,0,26,26);btn.setRolloverIcon(new ImageIcon("images/close_hover.jpg"));btn.setBorderPainted(false);btn.addActionListener(e->{jf.dispose();});pane.add(jl);pane.add(btn);return pane;}private static JPanel createleft(){JPanel panel=new JPanel();panel.setLayout(null);panel.setPreferredSize(new Dimension(130,0));ImageIcon image=new ImageIcon("images/qq.jpg");JLabel background=new JLabel(image);background.setBounds(0, 0, 120, 110);panel.add(background);return panel;}public static JPanel createcenter(JFrame jf){JPanel panel=new JPanel();panel.setLayout(null);String str[]={"1235685688","556846865","556989509"};JComboBox<Object> jcoCenter=new JComboBox<Object>(str);panel.add(jcoCenter);jcoCenter.setEditable(true);jcoCenter.setBounds(0, 15, 175, 30);jcoCenter.setFont(new Font("Calibrl",0,13));JPasswordField jpaCenter=new JPasswordField();jpaCenter.setLayout(new FlowLayout(FlowLayout.RIGHT,0,0));jpaCenter.setBounds(0, 44, 175, 30);jpaCenter.setPreferredSize(new Dimension(185,25));panel.add(jpaCenter);ImageIcon image=new ImageIcon("images/keyboard.jpg");JButton jbu=new JButton(image);jbu.setPreferredSize(new Dimension(22,20));jbu.setBorderPainted(false);jpaCenter.add(jbu);JCheckBox jch1=new JCheckBox("记住密码");jch1.setFocusPainted(false);jch1.setFont(new Font("宋体",0,12));jch1.setBounds(0, 85, 80, 20);panel.add(jch1);JCheckBox jch2=new JCheckBox("自动登录");jch2.setFocusPainted(false);jch2.setFont(new Font("宋体",0,12));jch2.setBounds(100, 85, 80, 20);ll=new LoginListener(jcoCenter,jpaCenter,jf);panel.add(jch2);return panel;}private static JPanel createright(){JPanel panel=new JPanel();panel.setLayout(null);panel.setPreferredSize(new Dimension(100,0));JLabel regeist=new JLabel("注册账号");regeist.setForeground(new Color(100,149,238));regeist.setBounds(0,13,60,30);regeist.setFont(new Font("宋体",0,12));JLabel regetpwd=new JLabel("找回密码");regetpwd.setForeground(new Color(100,149,238));regetpwd.setBounds(0,43,60,30);regetpwd.setFont(new Font("宋体",0,12));panel.add(regetpwd);panel.add(regeist);return panel;} private static JPanel createbottom(){JPanel pane=new JPanel();pane.setPreferredSize(new Dimension(1,51));pane.setLayout(null);JButton jb1=new JButton(new ImageIcon("images/single_normal.jpg"));jb1.setPreferredSize(new Dimension(40,40));jb1.setFocusPainted(false);jb1.setRolloverIcon(new ImageIcon("images/single_down.jpg"));jb1.setBorderPainted(false);jb1.setContentAreaFilled(false);jb1.setBounds(0,10,40,40);jb1.setToolTipText("多账号登录");ImageIcon img=new ImageIcon("images/login_normal.jpg");JButton jbu=new JButton("登    录",img);jbu.addActionListener(ll);jbu.setFont(new Font("宋体",0,13));jbu.setBounds(130,0,175,40);jbu.setHorizontalTextPosition(SwingConstants.CENTER);jbu.setFocusPainted(false);jbu.setContentAreaFilled(false);jbu.setBorderPainted(false);jbu.setRolloverIcon(new ImageIcon("images/lohin_hover.jpg"));JButton jbri=new JButton(new ImageIcon("images/right_normal.jpg"));jbri.setBounds(380,10,40,40);jbri.setFocusPainted(false);jbri.setBorderPainted(false);jbri.setContentAreaFilled(false);jbri.setRolloverIcon(new ImageIcon("images/right_hover.jpg"));jbri.setToolTipText("二维码登录");pane.add(jb1);pane.add(jbu);pane.add(jbri);return pane;  }}
  1. 创建并注册监听器
    LoginListener.java
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
public class Loginlistener implements ActionListener{private JComboBox<Object>jco;private JPasswordField jpa;private JFrame jf;public Loginlistener(JComboBox<Object>jco,JPasswordField jpa,JFrame jf) {// TODO 自动生成的构造函数存根super();this.jco=jco;this.jpa=jpa;this.jf=jf;}@Overridepublic void actionPerformed(ActionEvent e) {// TODO 自动生成的方法存根String name=(String)jco.getSelectedItem();String pwd=new String(jpa.getPassword());if(name.equals("123456896")&& pwd.equals("123")){jf.dispose();JFrame jfn=new JFrame();jfn.setSize(289,687);jfn.setLocation(800,100);jfn.setUndecorated(true);jfn.setResizable(true);jfn.setVisible(true);JPanel panel=new JPanel();panel.setLayout(null);panel.setPreferredSize(new Dimension(0,140));ImageIcon img=new ImageIcon("images/qqSuccess.jpg");JLabel background=new JLabel(img);background.setBounds(0,0,289,687);panel.add(background);JButton out=new JButton(new ImageIcon("images/close2_normal.jpg"));out.setBounds(265,0,26,26);out.setRolloverIcon(new ImageIcon("images/close2_hover.jpg"));out.setBorderPainted(false);panel.add(out);jfn.add(panel);out.addActionListener(event->jfn.dispose());}else{JOptionPane.showMessageDialog(null, "你输入的账户名或密码不正确,请重新输入!");}}}
  1. 编写程序入口
public static void main(String[]args) {SwingUtilities.invokeLater(QQlogin::initLogin);}

GUI图形用户接口编写QQ登录界面相关推荐

  1. JAVA编写QQ登录界面

    在开始学习JAVA图形界面编程中,老师留的第一个作业就是编写一个QQ登录界面,本来我的JAVA就不怎么会写,所以就在网上找啊找,结果就翻到了某位大佬的博客,参考了许多,附上大佬链接http://wz9 ...

  2. java gui界面设计qq_Java swing界面开发(仿QQ登录界面)

    首先引入包的概念,包:给代码分类,提高的了代码的可读性,封装后方便管理.在包中类的引入:import 包名.类名;包名需小写,多单词用"."隔开.类名的命名规范:首字母大写其后的每 ...

  3. QT学习日志(附:简易计算器,qq登录界面,简易绘图板,植物大战僵尸魔改版项目实践)

    目录 写在前面 实训前一天 头文件无法生成 项目栏不见了 不知道如何发布程序 实训第一天(附简易计算器的实现) 自定义命名空间的相关问题 关于隐式调用构造函数的问题 实训第二天(不附地址薄的实现) 关 ...

  4. 详解使用NetBeans IDE 8.2进行可视化图形界面设计——高仿QQ登录界面

    目录 前言 QQ登录界面的设计与实现 1.新建一个Java项目 2.在任意包下新建一个JFrame窗体类 3.添加图片 4.设置账号文本框(JTextField)与密码框(JPasswordField ...

  5. Unity Shader(一) Lowpoly动态低多边形 (QQ登录界面低边动画)

    前言 在逛论坛的时候偶然发现有人在问动态低多边形(Lowpoly)是如何实现的,因为经常编写UGUI拓展对顶点操作较为熟悉的我立马就想到利用继承UnityEngine.Graphic,重写OnPopu ...

  6. pyqt5登录界面设计——模仿qq登录界面,可登录注册(数据库)

    pyqt5登录界面设计--模仿qq登录界面 一.简单易用的可直接登录的界面--账号密码程序写死 1.1.效果图: 1.2.视频效果图 3.代码说明 4.使用示例 5.全部源码见: 二.带数据库的可登录 ...

  7. JavaGUI小结——实验做的QQ登录界面

    GUI(Graphical User Interface) 即图形用户界面. Java提供了三个主要包做GUI开发: java.awt 包 – 主要提供字体/布局管理器 常见的布局方式:FlowLay ...

  8. java的Swing组件模拟qq登录界面

    代码来自传智播客第二版(java)图片可根据自己喜好下载相关图片,建议将图片放到工作空间的目录下面,这样就可以直接获取图片,例如以这个格式"xxx.jpg",xxx图片名,jpg格 ...

  9. 用combobox扩展控件(dsCtrlComboBox)做出类似QQ登录界面的效果

    原文地址:http://www.uieasy.cn/blog/?p=513 传统的combobox 在使用方面有很多限制,很难满足我们combobox类型控件的需求.主要表现中combobox内置的l ...

  10. java qq登录界面_用java实现QQ登录界面怎么写

    展开全部 用32313133353236313431303231363533e78988e69d8331333365646263java做QQ登录界面的写法如下: package ch10; impo ...

最新文章

  1. 目标检测中的Tricks
  2. 为什么说特斯拉研发自动驾驶AI芯片应该引起注意?
  3. 此任务要求应用程序具有提升的权限
  4. openssl修改版本号
  5. 在windows平台使用Apache James搭建邮件服务器以及使用C#向外网发送邮件
  6. ML:文本、图像等数值化数据相似度计算之余弦相似度计算三种python代码实现
  7. TF之NN:利用DNN算法(SGD+softmax+cross_entropy)对mnist手写数字图片识别训练集(TF自带函数下载)实现87.4%识别
  8. Android开发之原型图浏览器打开可点击跳转之Google插件之Axure(实际上大部分浏览器都可以安装这个插件)
  9. linux 内存管理优化,Linux性能优化实战 内存篇 阅读笔记
  10. 【uva-673】 Parentheses Balance(括号匹配问题)
  11. 引擎设计跟踪(九.6) 地形最近更新
  12. ping -r 和tracert
  13. matlab浮点转定点的函数,FPGA基础知识17(Matlab中滤波器的定点化 浮点运算转换为定点运算)...
  14. Git64位windows版Git-2.10.1-64-bit.exe
  15. 宋浩老师线性代数知识卡片
  16. axios 封装数据请求
  17. android对话框列表,android列表对话框(dialog)的实现
  18. 产品 电信nb接口调用_【IoT】物联网NB-IoT之电信物联网开放平台对接流程浅析
  19. adlink.php id=,利用BIOS-ID获得主板的信息
  20. php codesniffer 代码规范,如何用PHP_CodeSniffer检查代码规范

热门文章

  1. 80286/286/Intel286 架构/流水线及其优化
  2. WPS中分节插入页码
  3. 计算机蓝屏代码0x0000007b,电脑蓝屏代码0x0000007b 电脑蓝屏0x0000007b怎么解决 - 云骑士一键重装系统...
  4. 如何在你朋友面前伪装黑客7(程序代码)
  5. metersphere性能测试测试资源池添加以及修改并发数
  6. 【原创】个人常用电脑软件、浏览器插件、手机APP常用推荐
  7. 小米路由器和TP-Link做wifi无线桥接
  8. android文本框删除按钮,ClearEditText — 带删除按钮的输入框
  9. 如何成为一名机器学习算法工程师
  10. 计算思维是利用计算机,计算机思维论文