最终效果图如下:

第一步:分析界面组成:根据三大布局的特点来确定由几大部分组成,哪些部分要用到JPanel.然后在窗体JFrame上用什么布局组合。
分析如下:

分为三大部分,如图三种不同彩色框(因为左边图案等于右边几行内容大小)。
分析各个部分如何实现:紫框:就是一张图片,用一个JLabel组件即可;红框:图片右靠上(流式布局的设置特点),用一个组件无法实现,要用到JPanel,用流式布局;黄框:也要用到一个JPanel和流式布局(根据组件大小,一行满了就换行)。三个部分放在窗体上用到北、西、中三个方位,很明显是边框布局。

第二步:开始编程:

(1)开头格式:

//1.新建Login类
public class Login {// 1.定义主函数public static void main(String[] args) {// 2.在主函数中实例化Login类的对象new Login();}// 1.构造方法public Login() {initUI();// 1.调用初始化界面的方法。}// 1.初始化界面的方法。public void initUI() {。。。。。。在这里编写界面}

(2)现在来写initUI方法

        //先实例化JFrame顶级容器组件类对象,设置组件的属性值:大小,标题,显示位置,关闭操作,布局,调整大小,可见JFrame w=new JFrame();w.setSize(430,330);w.setResizable(false);//禁止调整大小w.setUndecorated(true);//去掉自带的边框w.setLocationRelativeTo(null);//出现在电脑屏幕中央//再设组件:先设好组件,后面根据显示效果来在每个组件下面调整大小/*ImageIcon类:用来加载图片到程序中,图片文件最好放在与程序并列目录中,直接用下面方法调用*/ImageIcon pic1=new ImageIcon(this.getClass().getResource("pic1.png"));ImageIcon pic2=new ImageIcon(this.getClass().getResource("pic2.png"));/*JLabel标签元素组件类:显示文字或者图片*/JLabel ima1 = new JLabel(pic1);/*组件的设置大小:(除了JFrame用setSize,其余都用setPreferredSize包括JPanel),并且用到dimension封装类来实现*/ima1.setPreferredSize(new Dimension(300,180));JLabel ima2 = new JLabel(pic2);JLabel user=new JLabel("注册账号");user.setPreferredSize(new Dimension(80,25));JLabel password=new JLabel("找回密码");password.setPreferredSize(new Dimension(80,25));/*下拉框JComboBox:既可编辑文字,又可有选项直接选*/JComboBox txtUser=new JComboBox();txtUser.setEditable(true);txtUser.setPreferredSize(new Dimension(190,25));txtUser.addItem("1625002542");txtUser.addItem("2126341847");txtUser.addItem("3278523523");JPasswordField txtPass=new JPasswordField(17);JCheckBox cb1=new JCheckBox("记住密码");cb1.setPreferredSize(new Dimension(115,25));JCheckBox cb2=new JCheckBox("自动登录");cb2.setPreferredSize(new Dimension(150,25));JButton btLogin=new JButton("登录");btLogin.setPreferredSize(new Dimension(200,25));//然后设左面板JPanel leftPan=new JPanel();leftPan.setLayout(new FlowLayout(FlowLayout.RIGHT,10,10));//右对齐,组件垂直间隔10,水平间隔10leftPan.setPreferredSize(new Dimension(130,0));leftPan.add(ima2);//接着设右面板:/*组件的添加按照顺序来,先添加的先出现,流式布局的特点,通过调整组件大小来控制位置,放满本行就换到下一行*/JPanel rightPan=new JPanel();rightPan.setLayout(new FlowLayout(FlowLayout.LEFT,5,5));rightPan.add(txtUser);rightPan.add(user);rightPan.add(txtPass);rightPan.add(password);rightPan.add(cb1);rightPan.add(cb2);rightPan.add(btLogin);//最后把所有部分按照布局放到窗体中w.setLayout(new BorderLayout());w.add(ima1,BorderLayout.NORTH);w.add(leftPan,BorderLayout.WEST);w.add(rightPan,BorderLayout.CENTER);//全部搞好了最后再显示w.setVisible(true);}
}

小技巧:
1.选定类,按F3可以查看方法和源码,可以了解类的内在方便使用,和学习源代码
2.写完一小部分,就add到jframe中setVisible(true)看一下。

Java第二课:图形界面(实现QQ登陆界面)相关推荐

  1. java山寨qq_java图形界面之 山寨QQ登陆界面

    要山寨出QQ登陆界面,首先要对java的图形界面有一定的了解.在jdk1.4之前,图形界面所用到的所有类和接口都在javax.awt之下,在其之后就都在javax.swing里了. 关于图形界面的开发 ...

  2. Java实现QQ登陆界面的搭建

    仿QQ登陆界面 界面显示 界面布局 响应事件 仿QQ登陆界面实现 1.界面显示 界面显示的两种方法 创建JFrame对象 import java.awt.Color; import javax.swi ...

  3. Qt(三)--- 实现QQ登陆界面头像状态栏的功能

    对于QQ登陆界面,可以通过下拉菜单,实现状态的选择,在QQ的头像状态栏需要显示的信息包括:用户的头像以及登陆的状态.这里主要涉及和利用的只是是QMenu以及QAction,同时继承QLabel的类: ...

  4. linux qq java_Java实现QQ登陆界面

    Java实现QQ登陆界面,以下是效果截图: 素材: 以下是源代码: import java.awt.*; import java.awt.event.MouseEvent; import java.a ...

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

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

  6. Qt 之 模仿 QQ登陆界面——功能篇(一)

    一.简述 今天是2017年第一篇技术文章,12月末事情太多,一直没来得及更新博客.今天继 Qt 之 模仿 QQ登陆界面--样式篇 这一篇 来简单地看一下对登录界面做的一些功能,主要是登录用户下拉列表和 ...

  7. 使用HTML表单和表格完成静态QQ登陆界面

    使用HTML表单和表格完成静态QQ登陆界面 一.创建过程 创建表单 创建表格 创建行 创建单元格 创建表单组建 二.原理 使用表单来显示收集用户信息并用表格来帮助排版 三.主要代码 1. <ta ...

  8. Android studio新手:实现最新版QQ登陆界面

    最新版QQ登陆界面如下: 代码实现效果如下: activity_main.xml代码如下: <?xml version="1.0" encoding="utf-8& ...

  9. QComboBox自定义(一)--类似QQ登陆界面的下拉框

    刚学Qt的时候,初步经历的第一个学习项目基本上都是LANQQ,初识时,不懂QSS,不懂布局,绘制界面最简单的方式成了使用designer拉满整个界面的控件,或者使用代码写了一些很蹩脚的布局.也是很羡慕 ...

最新文章

  1. es6 匿名函数求阶乘
  2. 业务系统实现记住密码和自动登录功能
  3. 爬虫框架Scrapy的第一个爬虫示例入门教程
  4. mysql获取日期的月日_MySQL获取月,日的日期列表
  5. 嵌入式linux 配置usb otg,嵌入式系统设计中的USB OTG方案
  6. 2020大学计算机知到答案,2020年_知到_大学计算机(济南大学)_网课答案
  7. 十一级指针实现百万qq号的增删查改以及排序写入
  8. 让VC编译的Release版本程序在其他机器上顺利运行
  9. 题目1065:输出梯形 (直接用循环控制输出)+题目1432:叠筐 (数组控制形状,最后输出数组)...
  10. [css] 使用css实现蒙版的效果
  11. JAVA版本微信公众账号开源项目版本发布-jeewx1.0(捷微)
  12. 【英语学习】【WOTD】animadversion 释义/词源/示例
  13. mysql —— 分表分区(1)
  14. ABAP术语-Implementation
  15. 关于Webstorm汉化后无法打开设置,谈谈心里的想法
  16. 文献检索是利用计算机对文献,计算机文献检索方向论文选题 计算机文献检索论文标题怎么定...
  17. matlab学习技巧之semilogx和semilogy函数
  18. 信息化、数字化、智能化到底有什么区别
  19. LeetCode,无它,唯手熟尔(四)
  20. ZUCC 正方教务系统 抢课脚本 抢课流程实现

热门文章

  1. Labview移位寄存器理解(例子说明)
  2. 树莓派(一) 控制LED灯和声音传感器(python)
  3. teraterm乱码linux,[Unity3D][转] 关于Assets资源目录结构管理
  4. 电子设计教程40:软启动电路-串联NTC热敏电阻
  5. 是你吗?为超炫的 USB 硬件编写更好的软件
  6. 系统角色的使用和角色构建创建方式
  7. 基于FPGA的频率计设计
  8. 洛谷P1240 诸侯安置
  9. 风的UV分量转成风向风速(C#)
  10. 【XJTUSE软件项目管理复习笔记】 第二章 软件项目整体管理