java模仿实现QQ登录界面

本文实例为大家分享了java模仿实现qq登录界面的具体代码,供大家参考,具体内容如下

这是我模仿QQ2015版界面,实现的基本功能有登陆验证,重置等,当然直接复制代码运行是不一样的,还要注意自己插入自己的图片。

结果截图如下所示:

代码:

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import java.awt.Image;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Arrays;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;

import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JTextField;

public class QQ2015 extends JFrame implements ActionListener {
JFrame loginFrame;
// 复选框
private JCheckBox jc1;
private JCheckBox jc2;
// 用户名
private JTextField username;
// 密码
private JPasswordField password;
// 错误消息提示
JLabel mes;
// 创建一个HashMap,用以保存帐号和密码
HashMap<String, String> users = new HashMap<String, String>();

// 主函数入口
public static void main(String[] args) {
QQ2015 qq2015 = new QQ2015();
qq2015.showLoginFrame();
}

// 构造方法
public QQ2015() {
users.put("123456", "123456");
users.put("302795036", "123456");
users.put("123", "123456");
}

// 创建登陆界面方法
public void showLoginFrame() {
loginFrame = new JFrame();
// 设置大小,位置,标题
loginFrame.setSize(410, 380);
loginFrame.setTitle("修衡-QQ2015");
loginFrame.setLocationRelativeTo(null);
// 创建边界布局对象
loginFrame.setLayout(new BorderLayout());
JPanel panelTop = new JPanel(new FlowLayout());
JPanel panelCenter = new JPanel(new GridLayout(3, 1));
JPanel panelFooter = new JPanel(new GridLayout(2, 1));
JPanel panelFooter1 = new JPanel(new FlowLayout());
JPanel panelFooter2 = new JPanel(new FlowLayout());
panelFooter.add(panelFooter1);
panelFooter.add(panelFooter2);
JPanel panelLeft = new JPanel(new GridLayout(1, 1));
JPanel panelRight = new JPanel(new GridLayout(3, 1));
loginFrame.add("North", panelTop);
loginFrame.add("Center", panelCenter);
loginFrame.add("South", panelFooter);
loginFrame.add("West", panelLeft);
loginFrame.add("East", panelRight);
(new BorderLayout()).setHgap(50);
// 插入图片
Image im = new ImageIcon("imgs/qq.png").getImage();
im = im.getScaledInstance(-1, 90, DO_NOTHING_ON_CLOSE);
loginFrame.setIconImage(im);
JLabel tl = new JLabel(new ImageIcon("imgs/top.png"));
panelTop.add(tl);
// 可以设置panelTop背景颜色
// panelTop.setBackground(Color.YELLOW);
JLabel ll = new JLabel(new ImageIcon("imgs/left.png"));
panelLeft.add(ll);
// 创建注册账号和找回密码标签
JLabel reg_name = new JLabel(" 注册账号 ");
JLabel find_password = new JLabel(" 找回密码 ");
reg_name.setForeground(Color.BLUE);
find_password.setForeground(Color.BLUE);
// 创建帐号和密码输入框
username = new JTextField(18);
password = new JPasswordField(18);
// 复选框
jc1 = new JCheckBox("记住密码 ");
jc2 = new JCheckBox("自动登录");
JLabel nul1 = new JLabel(" ");
JLabel nul2 = new JLabel(" ");
// 错误消息提示标签
mes = new JLabel();
mes.setForeground(Color.RED);
// 部分布局
JPanel pancener = new JPanel(new FlowLayout());
pancener.add(jc1);
pancener.add(nul1);
pancener.add(jc2);
// 创建登陆,重置按钮
JButton button_reset = new JButton(" 重 置 ");
JButton button_login = new JButton(" 登 陆 ");
button_login.setBackground(Color.pink);
// 窗体大小不能改变
loginFrame.setResizable(false);
// 设置窗体可见
loginFrame.setVisible(true);
// 将文本输入框,按钮,事件监听对象等添加
panelCenter.add(username);
panelCenter.add(password);
panelCenter.add(pancener);
panelRight.add(reg_name);
panelRight.add(find_password);
panelFooter1.add(button_reset);
panelFooter1.add(nul2);
panelFooter1.add(button_login);
panelFooter2.add(mes);
button_reset.addActionListener(this);
button_login.addActionListener(this);
// reg_name.addActionListener(this);
}

public void actionPerformed(ActionEvent e) {
String str = e.getActionCommand();
boolean f = false;
String pw = null;
// 重置事件
if (str.equals(" 重 置 ")) {
username.setText("");
password.setText("");
mes.setText("");
}
// 登录事件
if (str.equals(" 登 陆 ")) {
mes.setText("");
Set<Map.Entry<String, String>> set = users.entrySet();
for (Map.Entry<String, String> me : set) {
if (username.getText().trim().equals(me.getKey())) {
f = true;
pw = me.getValue();
break;
}
}
if (f) {
// if (password.getPassword().equals(pw)) {
if (password.getText().trim().equals(pw)) {
JOptionPane.showMessageDialog(null, "登录成功");
} else {
mes.setText("温馨提示:密码为空或错误,请重新输入!");
}
} else {
mes.setText("温馨提示:帐号为空或错误,请重新输入!");
}
}
}
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • java实现简单QQ登录界面

    本文实例为大家分享了java实现简单QQ登录界面的具体代码,供大家参考,具体内容如下 java在图形界面,不是太强项,但不是不可以做,它的开源是very nice! 实现代码如下(想实现完美的界面,可能要更多coding的支持): package com.ts.x.swing; import java.awt.Color; import java.awt.Container; import java.awt.Cursor; import java.awt.Font; import java.aw

  • java实现 微博登录、微信登录、qq登录实现代码

    微信,微博,QQ,这是现在目前用的最多的手机 APP,我们做产品哪能不跟他们不沾边,对于登录,我想谁也不想要多少个帐号密码,根本记不住! 为了增加用户体验,用户能够快速的注册登录,第三方账号进行登录注册的的需求也就由此而诞生 1.微信 1) 微信登录也是最坑人的,需要花300大洋成为开发者账户,没办法谁让微信用户群体大呢所以也就只好认了:然后登录网站后台需要创建网站应用,填写授权回调域(登录网站的域名)只填写域名即可 申请地址: https://open.weixin.qq.com/cgi-bi

  • Java Swing仿QQ登录界面效果

    本文实例为大家分享了Java Swing仿QQ登录界面展示的具体代码,供大家参考,具体内容如下 闲来无事将早些时候已实现的QQ登录界面再实现了一遍,纯手工打造(意思是没有用NetBeans.MyEclipse的拖动功能). 源代码如下: package ibees.qq; import java.awt.BorderLayout; import java.net.URL; import javax.swing.ImageIcon; import javax.swing.JButton; impo

  • java代码块之简易qq登录界面及按钮颜色设置代码

    本文主要分享了关于简洁版qq登录界面及按钮颜色设置的相关代码,供参考. java代码块 公共包(初始化窗口位置) package util; import java.awt.Dimension; import java.awt.Toolkit; import javax.swing.JFrame; //图形化界面的工具类 public class FrameUtil { //设置窗体出现在中间位置 public static void initFrame(JFrame frame,int wid

  • 使用java swing实现qq登录界面示例分享

    用Java Swing做的一个QQ登录界面 复制代码 代码如下: import java.awt.Container;import java.awt.Image;import java.awt.event.ActionEvent;import java.awt.event.ActionListener; import javax.swing.ImageIcon;import javax.swing.JButton;import javax.swing.JCheckBox;import javax

  • Java Web 实现QQ登录功能一个帐号同一时间只能一个人登录

    对于一个帐号在同一时间只能一个人登录,可以通过下面的方法实现: 1 .在用户登录时,把用户添加到一个ArrayList中 2 .再次登录时查看ArrayList中有没有该用户,如果ArrayList中已经存在该用户,则阻止其登录 3 .当用户退出时,需要从该ArrayList中删除该用户,这又分为三种情况 ① 使用注销按钮正常退出 ② 点击浏览器关闭按钮或者用Alt+F4退出,可以用JavaScript捕捉该页面关闭事件, 执行一段Java方法删除ArrayList中的用户 ③ 非正常退出,比如

  • JavaWeb实现同一帐号同一时间只能一个地点登陆(类似QQ登录的功能)

    JavaWeb实现同一帐号同一时间只能一个地点登陆(类似QQ登录的功能)的实现思路如下所示: 一.该功能有什么作用 大家想想吧.反正总会有这样的需求的.这年头什么需求不会有..呵呵.有时候也不一定是需求,很有可能为了安全也会这么做.例如考试系统,在线聊天系统,很有必要做成这样的吧. 二.实现过程 a.问题分析 在系统中,我们一般都是把登录信息绑定到session中,看来从这入手是可能找到解决办法.说白了,也就是当用户登录时,判断一下这个用户有没有登录,如果登录了,就把以前的那个session清除

  • java模仿实现QQ登录界面

    本文实例为大家分享了java模仿实现qq登录界面的具体代码,供大家参考,具体内容如下 这是我模仿QQ2015版界面,实现的基本功能有登陆验证,重置等,当然直接复制代码运行是不一样的,还要注意自己插入自己的图片. 结果截图如下所示: 代码: import java.awt.BorderLayout; import java.awt.Color; import java.awt.FlowLayout; import java.awt.GridLayout; import java.awt.Image

  • electron vue 模仿qq登录界面功能实现

    目录 1.使用vuecli创建vue项目 2.安装electron 3.vue项目安装Electron-builder打包工具 4.在vue项目的src下有个background.js文件 5.安装remote模块 6.代码 7.效果图 1.使用vuecli创建vue项目 我用的vue2 vue create qq_test 2.安装electron npm install electron -g //or npm install electron@12.0.11 //老版本 3.vue项目安装

  • Android实现QQ登录界面遇到问题及解决方法

    先给大家炫下效果图: 首先过程中碰到的几个问题: 1.对 EditText 进行自定义背景 2.运行时自动 EditText 自动获得焦点 3.在获得焦点时即清空 hint ,而不是输入后清空 4.清空按钮的出现时机(在得到焦点并且有输入内容时) ......... --- 这些问题都有一一解决 --- 以下是代码: 布局 fragment_main(问题2) <!-- android:focusable="true" android:focusableInTouchMode=&

  • Android Studio实现简单的QQ登录界面的示例代码

    一.项目概述 QQ是我们日常生活使用最多的软件之一,包含登录界面和进入后的聊天界面.好友列表界面和空间动态界面等.登录界面的制作比较简单,主要考验布局的使用,是实现QQ项目的第一步.现在APP开发的首要工作都是实现登录页面,所以学会了QQ登录界面对以后的软件开发有着很重要的作用. 二.开发环境 三.详细设计 1.头像设计 首先在layout文件里面选择了RelativeLayout(相对布局)作为整个页面的布局. 在顶端放置了一个ImageView控件,宽度和高度设置的都是70dp,水平居中设置

  • Java Swing实现QQ登录页面

    本文实例为大家分享了Java Swing 实现QQ登录页面,供大家参考,具体内容如下 代码如下: import java.awt.*; import javax.swing.*;  public class Demo121 extends JFrame{     public Demo121()     {         JPanel jp1=new JPanel();         JPanel jp2=new JPanel();         JPanel jp3=new JPanel

随机推荐