Java之QQ界面实现

##1.创建QQ登录窗口,并添加布局管理器
QQLogin.java

import java.awt.*;
import javax.swing.*;
public class QQLogin{//1.为QQ登录界面整体初始化一个JFrame窗口private static JFrame jf=new JFrame();public static void initLogin(){//QQ登录窗口初始化方法jf.setSize(426,300);//设置窗口尺寸jf.setLocation(497,242);//设置窗口在屏幕显示位置jf.setUndecorated(true);//设置JFrame窗口边框不显示jf.setResizable(false);//禁止改变窗口大小BorderLayout border_layout=new BorderLayout();jf.setLayout(border_layout);//创建并加入顶部面板JPanel panel_north=CreatePanel.CreateNorthPanel(jf);jf.add(panel_north,BorderLayout.PAGE_START);//创建并加入中部面板JPanel panel_center=CreatePanel.CrateCenterPanel(jf);jf.add(panel_center,BorderLayout.CENTER);//创建并加入左侧面板JPanel panel_west=CreatePanel.CreateWestPanel();jf.add(panel_west,BorderLayout.LINE_START);//创建并加入底部面板JPanel panel_south=CreatePanel.CreateSouthPanel();jf.add(panel_south,BorderLayout.PAGE_END);//创建并加入右侧面板JPanel panel_east=CreatePanel.CrateEastPanel();jf.add(panel_east,BorderLayout.LINE_END);jf.setVisible(true);//设置窗口可见
}
public static void main(String[]args){SwingUtilities.invokeLater(QQLogin::initLogin);
}
}

##2.创建区域面板类 划分容器区域
CreatePanel.java

import java.awt.*;
import javax.swing.*;
public class CreatePanel {private static LoginListener ll=null;//顶部面板区域public static JPanel CreateNorthPanel(JFrame jf){//创建一个JPanel顶部面板JPanel panel=new JPanel();//取消面板内默认布局panel.setLayout(null);//设置顶部面板尺寸panel.setPreferredSize(new Dimension(0,140));//向顶部面板添加背景图片ImageIcon image=new ImageIcon("images/back.jpg");JLabel background=new JLabel(image);
//设置背景图片的位置和尺寸background.setBounds(0,0,426, image.getIconHeight());panel.add(background);//在顶部JPanel面板右上角添加一个退出按钮JButton out=new JButton(new ImageIcon("images/close_normal.jpg"));out.setBounds(403,0,26,26);//设置鼠标移动到退出按钮时更改图片out.setRolloverIcon(new ImageIcon("images/close_hover.jpg"));//取消按钮边框效果out.setBorderPainted(false);panel.add(out);//为退出按钮注册监听器,用来关闭窗口out.addActionListener(event->jf.dispose());return panel;}//左侧面板区域public static JPanel CreateWestPanel(){//创建一个JPanel左侧面板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 CrateCenterPanel(JFrame jf){//创建一个JPanel中部面板JPanel panel=new JPanel();panel.setLayout(null);//创建一个JcomboBox下拉框组件,并初始化QQ账号String str[]={"123456789","987654321","1314520888"};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));//创建一个JPsswordField密码框组件JPasswordField jpaCenter=new JPasswordField();//设置密码框面板为FlowLayoutjpaCenter.setLayout(new FlowLayout(FlowLayout.RIGHT,0,0));jpaCenter.setBounds(0, 44, 175, 30);jpaCenter.setPreferredSize(new Dimension(185,25));panel.add(jpaCenter);//创建ImageIcon小键盘组件,并加入到密码框组件中ImageIcon image=new ImageIcon("images/keyboard.jpg");JButton jbu=new JButton(image);jbu.setPreferredSize(new Dimension(22,20));jbu.setBorderPainted(false);jpaCenter.add(jbu);//创建两个JChenckBox多选框组件JCheckBox jch1=new JCheckBox("记住密码");//设置选中时不显示边框jch1.setFocusPainted(false);jch1.setFont(new Font("宋体",0,13));jch1.setBounds(0, 85, 80, 20);panel.add(jch1);JCheckBox jch2=new JCheckBox("自动登录");jch2.setFocusPainted(false);jch2.setFont(new Font("宋体",0,13));jch2.setBounds(100, 85, 80, 20);panel.add(jch2);//在中部面板初始化登录监听器,封装账号和密码ll=new LoginListener(jcoCenter,jpaCenter,jf);return panel;}
//右侧面板区域public static JPanel CrateEastPanel(){//创建一个Jpanel右侧面板JPanel panel=new JPanel();panel.setLayout(null);panel.setPreferredSize(new Dimension(100,0));//创建两个JLabel标签组件JLabel regeist=new JLabel("注册账号");regeist.setForeground(new Color(100,149,238));regeist.setBounds(0,13,60,30);regeist.setFont(new Font("宋体",0,12));
//创建一个Jpanel右侧面板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;} //底部面板区域public static JPanel CreateSouthPanel(){//床一个JPanel底部面板JPanel panel=new JPanel();panel.setPreferredSize(new Dimension(0,51));panel.setLayout(null);//创建左下角多人登录图标组件JButton jble=new JButton(new ImageIcon("images/single_normal.jpg"));jble.setPreferredSize(new Dimension(40,40));jble.setFocusPainted(false);jble.setRolloverIcon(new ImageIcon("images/single_down.jpg"));jble.setBorderPainted(false);//设置不显示按钮区域jble.setContentAreaFilled(false);jble.setBounds(0,10,40,40);jble.setToolTipText("多账号登录");//创建底部中间登录图标组件ImageIcon image=new ImageIcon("images/login_normal.jpg");JButton jb=new JButton("登     录",image);jb.setFont(new Font("宋体",0,13));jb.setBounds(130,0,175,40);//将文字放在图片中间jb.setHorizontalTextPosition(SwingConstants.CENTER);jb.setFocusPainted(false);jb.setContentAreaFilled(false);jb.setBorderPainted(false);jb.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("二维码登录");//将底部3 个组件添加到底部JPanel面板中panel.add(jble);panel.add(jb);panel.add(jbri);//为登录按钮注册监听器,后台检测QQ账号,密码是否正确jb.addActionListener(ll);return panel; }}

##3.创建并注册监听器
LoginListener.java

import java.awt.*;import java.awt.event.*;import javax.swing.*;public class LoginListener implements ActionListener{private JComboBox<Object>jco;//用来获取QQ账号的对象private JPasswordField jpa;//用来获取QQ密码的对象private JFrame jf;public LoginListener(JComboBox<Object>jco,JPasswordField jpa,JFrame jf) {super();this.jco=jco;this.jpa=jpa;this.jf=jf;}public void actionPerformed(ActionEvent e) {// 1.获取登录的账号和密码String name=(String)jco.getSelectedItem();String pwd=new String(jpa.getPassword());//2.判断输入的账号和密码是否正确if(name.equals("123456789")&& pwd.equals("123")){//账号正确,先关闭当前JFrame登录窗口jf.dispose();//模拟显示登录成功后的QQ窗口JFrame jfn=new JFrame();jfn.setSize(289,687);jfn.setLocation(800,100);jfn.setUndecorated(true);jfn.setResizable(true);jfn.setVisible(true);//为QQ显示窗口添加背景图片和退出按钮组件JPanel panel=new JPanel();panel.setLayout(null);panel.setPreferredSize(new Dimension(0,140));ImageIcon image=new ImageIcon("images/qqSuccess.jpg");JLabel background=new JLabel(image);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{//QQ账号或密码输入错误,弹出提示信息JOptionPane.showMessageDialog(null, "你输入的账户名或密码不正确,请重新输入!");}}}

Java之QQ界面实现相关推荐

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

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

  2. Java 实现QQ界面聊天小项目,可在线聊天!

    有情怀,有干货,微信搜索[程序员漫话编程]关注这个技术控程序员. 本文 GitHub https://github.com/ProceduralZC/JavaDevGuide 已收录,有一线大厂面试完 ...

  3. android零碎要点---android开发者的福音,59_1 Android的界面设计工具,直接拖拉就可以设计界面,Java技术qq交流群:JavaDream:251572072

    Java技术qq交流群:JavaDream:251572072 2013/5/16 59_1 Android的界面设计工具 -------------------------------------- ...

  4. java qq聊天界面_【附源码】用Java写了一个类QQ界面聊天小项目,可在线聊天!...

    原标题:[附源码]用Java写了一个类QQ界面聊天小项目,可在线聊天! 目录: 1.功能实现 2.模块划分 3.使用到知识 4.部分代码实现 5.运行例图 1.功能实现 1.修改功能(密码.昵称.个性 ...

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

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

  6. 基于TCP,Socket编程,模仿腾讯QQ界面,使用Java开发的一款网络聊天工具。QQ_Chat

    代码下载地址 原博客地址 QQ_Chat 基于TCP,Socket编程,模仿腾讯QQ界面,使用Java开发的一款网络聊天工具. (内含报告) 工具: Eclipse.Navicat for MySQL ...

  7. java实现仿qq界面及功能、网路编程、实现抽象工厂模式、线程池代码与测试

    java实现仿qq界面及功能 用Swing 代码在百度网盘:http://pan.baidu.com/s/1pJjxI4b 具体见https://www.iteye.com/topic/1137293 ...

  8. java qq ui界面_java swing 创建一个简单的QQ界面教程

    记录自己用java swing做的第一个简易界面. LoginAction.java package com.QQUI0819; import javax.swing.*; import java.a ...

  9. java qq聊天界面代码,Java简易qq聊天,代码

    Java简易qq聊天,代码 关注:156  答案:2  手机版 解决时间 2021-02-26 11:56 提问者心死旳很干净 2021-02-25 16:17 Java简易qq聊天,代码 最佳答案 ...

最新文章

  1. SSH分客户端openssh-client和openssh-server
  2. ActiveMQ的消息存储(八)
  3. GitLab-CI与GitLab-Runner
  4. 设计模式依赖倒转原则
  5. java中的asList_Java Arrays.AsList原理及用法实例
  6. Java多线程实现异步调用
  7. 部署WEB应用到云服务器时,出现的部分网页不能显示或者连接数据库问题。
  8. 华尔街日报:微软告别盖茨时代
  9. nvm for window 开源资源(免费下载)
  10. 数组中只出现一次的数
  11. 烧钱两年,做事对得起工资,也要对得起公司这份决心
  12. 十大最受欢迎蓝牙耳机品牌推荐,学生党打工人平价蓝牙耳机
  13. exchange网易企业邮箱服务器设置,网易企业邮箱Exchange协议邮件客户端配置指南...
  14. 任正非:不惑之年创立华为是生活所迫,CEO真不是人干的活
  15. 程序设计与算法(一)第7周测验(2019夏季)
  16. Windows和Linux下排查C++软件异常的常用调试器与内存检测工具详细介绍
  17. 打卡学习——应对焦虑的一剂良方!
  18. 怎么将Java中的小瓶子删掉_AcWing 1224. 交换瓶子 JAVA O(n)
  19. ImportError: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.26‘ not foun Python GDAL
  20. 2D游戏开发 - 配置SkyGameEngine2d环境

热门文章

  1. 十一假期,我在头等舱里,看到了自已贫穷的真相!
  2. 华为手机备忘录,到底有多好用?花粉看完,纷纷点赞
  3. 值传递,地址传递,引用传递
  4. 如何利用大数据征信应对花样翻新的金融诈骗?
  5. 微型计算机原理中的mov,微机原理考试题目类型
  6. Carla-Scenario Runner 安装步骤与踩坑
  7. App推广攻略:6种渠道追踪方法及渠道数据分析的新思路
  8. FPGA从零设计[1]——关于Altera FPGA的下载器接口
  9. java对es做聚合查询_java操作elasticsearch实现聚合查询
  10. 用CSS实现段落前面缩进两个字