学习完类与对象和类与继承之后,对面向对象编程(OOP)有了基本的了解。OOP的核心思路就是先定义类,设置好类的属性和方法,然后创建对象,调用方法,最终实现程序的运行。编程其实是一项“前人栽树,后人乘凉”的工作,前人把一些实现特定功能的程序写在一个类里面,我们只需要创建对象,然后调用就行。了解完这些之后我们可以做一个QQ登录的UI设计。

UI设计常见的一些类通常放在java.awt和javax.swing包里面,在定义类之前,首先要使用“import”将其调用过来。

import javax.swing.*;
import java.awt.*;

简单的UI设计的思路大致是:1.创建窗体,设置好窗体的尺寸、标题、布局等;2、加载组件对象,包括图片标签,文字标签,输入框,按钮等;3、将组件加入到窗体中。实现代码如下:

import javax.swing.*;
import java.awt.*;public class MyUI {public void initiUI() {/*** 1创建一个窗体*/  JFrame jf= new JFrame();//定义尺寸、标题、关闭选项、窗体大小固定以及窗体的显示jf.setSize(500,380);jf.setTitle("QQ登录");jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);jf.setResizable(false);jf.setVisible(true);/**定义窗体的布局,这里使用的是流式布局*流式布局的主要特点是:整体居中,从左往右排列,一行排列不下自动换行*/FlowLayout f1=new FlowLayout();jf.setLayout(f1);/** 2.加载组件对象*///图片--标签ImageIcon image = new ImageIcon("Q.jpeg");JLabel imgela= new JLabel(image);//文字标签JLabel namejla= new JLabel("账号:");JLabel passjla= new JLabel("密码:");//输入框。这里的JPasswordField是JTextField的子类,可以实现输入密码时隐藏密码的功能。JTextField nameInput =new JTextField();JPasswordField pwdInput =new JPasswordField();//输入框尺寸Dimension dim =new Dimension(400,40);nameInput.setPreferredSize(dim);pwdInput.setPreferredSize(dim);//加登录按钮JButton btn =new JButton("登录");//3.将组件加到窗体上。组件添加存在先后顺序,按窗体的布局设置好先后顺序jf.add(imgela);jf.add(namejla);jf.add(nameInput);jf.add(passjla);jf.add(pwdInput);jf.add(btn);jf.setVisible(true);}//创建对象,调用方法public static void main(String[] args) {MyUI  myui= new MyUI();myui.initiUI();}}

运行上面的程序就可以得到一个如下图所示的窗体。

按照日常使用app的经验时,我们希望输入账号和密码之后点击登录就可以进入到QQ界面。这里我们需要使用到监听器,监听器的作用类似于一个开关电路,当我们按下开关键时,电路接通灯就亮了。在这里我们希望,输入完正确的账号和密码,点击登录键后,界面自动转换为我们想要的界面,如若输入错误,则显示其他的界面。

java中关于监听器的类为ActionListener,由于每个人对监听器都所定义的功能不同,所以在java中这个类并不是完整的,它只有方法名,没有方法体,具体的方法体需要使用者根据自己的需求去编写。关于监听器类的具体实现代码如下:

import javax.swing.*;
import java.awt.event.*;public class ButtonListener implements ActionListener{JFrame ui;private JTextField nameInput;private JPasswordField pwdInput;//这里面方法的作用就是将输入框里面的账号与密码传送到监听器中,实现参数传递的功能public void setTextField(JTextField nameInput){this.nameInput = nameInput;}public void setPassword(JPasswordField pwdInput){this.pwdInput = pwdInput;}public void actionPerformed(ActionEvent e) {JFrame JF = new JFrame();JF.setSize(400,300);JF.setLocationRelativeTo(null);JF.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);String str;//获取用户名,getText()是JAVA中的方法,获取文本框内容String name = nameInput.getText();//获取密码的输入框的内容char[] temp = pwdInput.getPassword();//根据char[]生成字符串String pwd = new String(temp);if(name.equals("admin")&&(pwd.equals("123456"))){str = "登录成功!";}else {str = "您输入的信息有误,请重新输入!";}JLabel J = new JLabel(str);JF.add(J);JF.setVisible(true);//可以实现在输入账号密码之后自动关闭原来的登录界面ui.setVisible(false);}    }

在上面的UI设计程序里面我们创建监听器的对象,调用方法。代码如下:

    ButtonListener Listen = new ButtonListener();btn.addActionListener(Listen);//参数传递,将账号密码传输到监听器中Listen.setTextField(nameInput);Listen.setPassword(pwdInput);Listen.ui=jf;

这里需要注意的是ActionListener是一个接口类,定义监听器类时使用"implements",实现接口类后,必须重写接口类里面的方法,以实现自己的功能。事件监听机制的主要思路就是将窗体中输入框里的账号和密码传递到监听器类中,在监听器类的方法中提取到账号与密码的信息,然后再根据账号与密码的正确与否,做出相应的回应。在这里我们设置为输入账号与密码之后,点击登录按钮,就会自动弹出一个新的界面,如显示“登录成功”或“您输入的信息有误,请重新输入!”如下图所示:

java-UI设计(仿QQ登录界面)相关推荐

  1. Android UI布局—— 仿QQ登录界面

    最近,有点空闲的时间就拿QQ登录界面来模仿练手,做了个简单的登录界面.界面一般般吧,不算很漂亮,现在拿出来分享,希望大家一起学习与进步.有什么不足之处,请各位大侠多多赐教,谢谢.这个界面涉及到Line ...

  2. java仿qq登录 界面设计,Java Swing仿QQ登录界面效果

    本文实例为大家分享了Java Swing仿QQ登录界面展示的具体代码,供大家参考,具体内容如下 闲来无事将早些时候已实现的QQ登录界面再实现了一遍,纯手工打造(意思是没有用NetBeans.MyEcl ...

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

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

  4. java如何引入qq登陆,Java Swing仿QQ登录界面 学习之用

    闲来无事将早些时候已实现的QQ登录界面再实现了一遍,纯手工打造(意思是没有用NetBeans.MyEclipse的拖动功能). 源代码如下: package ibees.qq; import java ...

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

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

  6. JavaSwing仿QQ登录界面,注释完善,适合新手学习

    使用说明: 这是一个java做的仿制QQ登录界面,界面仅使用一个类, JDK版本为jdk-11 素材包的名字为:素材(下载)请在项目中新建一个名字为"素材"的文件夹. 素材: ht ...

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

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

  8. Android实现仿QQ登录界面背景动画效果

    登录QQ的时候,我们会看到在登录界面的背景不是静态的,而是一段动画效果,刚开始觉得蛮好奇的,现在我们也来实现一下这种效果,实现起来还是挺简单的. 实现步骤: 1.自定义CustomVideoView类 ...

  9. java仿qq 界面_界面--仿qq登录界面

    [java]代码库package s1127qq登陆界面; import java.awt.BorderLayout; import java.awt.Color; import java.awt.C ...

  10. php仿qq登录界面安卓,Android_Android仿QQ登陆窗口实现原理,今天根据腾讯qq,我们做一个 - phpStudy...

    Android仿QQ登陆窗口实现原理 今天根据腾讯qq,我们做一个练习,来学习如何制作一个漂亮的布局.首先看一下官方图片 还是一个启动画面,之后进入登录页面,导航页面就不介绍了,大家可以参考微信的导航 ...

最新文章

  1. 和老同事的谈话:关于职业生涯以及MDA
  2. win32 实现死锁的小例子
  3. 性能测试监控工具nmon安装及使用方法
  4. MySQL数据库从入门到实战(四)
  5. webpack配置es6开发环境
  6. Serializing Lua objects into Lua Code
  7. 游戏教玩家学java,技术|帮你学习Java语言的游戏
  8. 在django项目中使用django-ckeditor
  9. I - 数塔(动态规划)数塔问题
  10. Vue Cli 3代理配置
  11. 链家二手房销售数据分析
  12. USB PD快速充电通信原理
  13. 绘制鱼骨图,卡壳了,找到了别人的文章,先好好学习理论知识。
  14. 人体神经元结构示意图,神经细胞内部结构图
  15. Entity Framework Core系列教程-23-原生SQL查询
  16. 怎么计算机会成本,机会成本计算公式,实例解读机会成本
  17. java在线测评系统_JavaWeb项目:在线评测系统
  18. opencart修改后台文件夹名
  19. Linux磁盘修复命令----fsck
  20. SOLIDWORKS Manage 2022 版本集成插件

热门文章

  1. antd table input 失焦的问题
  2. TCP常用网络和木马使用端口对照表,常用和不常用端口一览表
  3. office图标空白异常解决方法
  4. 已知六条边的边长,求四面体体积
  5. select into from 与 insert into select用法详解
  6. 北邮计算机考研科目2022,2022考研:北京邮电大学计算机专业考研经验复习指导...
  7. win7指定网络名不再可用
  8. VS2015大括号高亮显示的设置方法
  9. MATLAB Win10分辨率低的蜜汁改进方法
  10. 【盘点】2017美国人工智能专业最好的20所大学(附地理位置)Ⅱ