2018-10-28 15:54:38 开始写



 import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JLabel;
import javax.swing.JOptionPane; import java.awt.Font;
import javax.swing.JTextField;
import javax.swing.SwingConstants;
import javax.swing.JButton;
import javax.swing.JPasswordField; import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.ImageIcon;
import java.awt.Color; public class Login extends JFrame {
private JPanel contentPane; //面板
private JTextField tName;//账号输入框
private JPasswordField passwordField; //密码输入框
private JLabel lblBanner; //QQ登录图片
public static void main(String[] args) {
// TODO Auto-generated method stub
Login frame = new Login(); //实例化Login
frame.setVisible(true); //使窗体显示
}
public Login() { //无参构造方法
setResizable(false); //窗口边界不可拉伸
setTitle("QQ登录窗口");//设置窗口标题
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //关闭并退出
setBounds(100, 100, 406, 289);//初始位置及大小 contentPane = new JPanel();//实例化面板
contentPane.setBackground(Color.white);//背景颜色
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));//外边距
setContentPane(contentPane);//将面板放进窗口
contentPane.setLayout(null);//布局方式 JLabel lblName = new JLabel("用户名:"); //账号标签
lblName.setFont(new Font("幼圆", Font.PLAIN, 16));//标签字体 类型 大小
lblName.setBounds(115, 144, 64, 18);//初始位置及大小
contentPane.add(lblName); //将标签添加进面板 tName = new JTextField();//实例化账号输入框
tName.setBounds(180, 143, 156, 21);//初始位置及大小
contentPane.add(tName);//添加进面板
tName.setColumns(10);//最大输入列数 tName.addActionListener(new ActionListener() { // 添加动作监听的事件
@Override
public void actionPerformed(ActionEvent e) { // 发生操作时
passwordField.requestFocus(); //当写完账号后回车,自动跳转到密码框
}
}); JLabel lblPwd = new JLabel("密码:");//密码标签
lblPwd.setHorizontalAlignment(SwingConstants.RIGHT);//水平居中
lblPwd.setFont(new Font("幼圆", Font.PLAIN, 16));//字体
lblPwd.setBounds(125, 175, 54, 15);//位置大小
contentPane.add(lblPwd);//添加 passwordField = new JPasswordField();//实例化
passwordField.setBounds(180, 172, 156, 21);//位置大小
contentPane.add(passwordField);//添加
passwordField.addActionListener(new ActionListener() { // 添加动作监听的事件,输入完密码后回车,作用和登录按钮相同
@Override
public void actionPerformed(ActionEvent e) { // 发生操作时
if (tName.getText().equals("yujie") && passwordField.getText().equals("yujie")) { // “登陆成功”的条件
JOptionPane.showMessageDialog(null, "登录成功!", "Success", JOptionPane.INFORMATION_MESSAGE); // 弹出框:“登陆成功!”
} else if (tName.getText().equals("") || passwordField.getText().equals("")) { // 文本框为空时
JOptionPane.showMessageDialog(null, "用户名或密码不能为空!", "Warning", JOptionPane.WARNING_MESSAGE); // 弹出框:“用户名或密码不能为空!”
} else { // 以上条件都不满足的时候
JOptionPane.showMessageDialog(null, "用户名或密码错误!", "Error", JOptionPane.ERROR_MESSAGE); // 弹出框:“用户名或密码错误!”
}
}
}); JButton btnLogin = new JButton("登 录"); //登录按钮
btnLogin.addActionListener(new ActionListener() { // 添加动作监听的事件
@Override
public void actionPerformed(ActionEvent e) { // 发生操作时
if (tName.getText().equals("yujie") && passwordField.getText().equals("yujie")) { // “登陆成功”的条件
JOptionPane.showMessageDialog(null, "登录成功!", "Success", JOptionPane.INFORMATION_MESSAGE); // 弹出框:“登陆成功!”
} else if (tName.getText().equals("") || passwordField.getText().equals("")) { // 文本框为空时
JOptionPane.showMessageDialog(null, "用户名或密码不能为空!", "Warning", JOptionPane.WARNING_MESSAGE); // 弹出框:“用户名或密码不能为空!”
} else { // 以上条件都不满足的时候
JOptionPane.showMessageDialog(null, "用户名或密码错误!", "Error", JOptionPane.ERROR_MESSAGE); // 弹出框:“用户名或密码错误!”
}
}
});
btnLogin.setFont(new Font("幼圆", Font.PLAIN, 16));//按钮字体
btnLogin.setBounds(125, 216, 156, 23);//位置大小
contentPane.add(btnLogin);//添加 lblBanner = new JLabel("");//用于添加QQ界面图片
lblBanner.setIcon(new ImageIcon(Login.class.getResource("QQLogin.png")));//图标
lblBanner.setBounds(0, 0, 400, 129);//位置大小
contentPane.add(lblBanner);//添加 JLabel lblIcon = new JLabel("");//用于添加头像
lblIcon.setIcon(new ImageIcon(Login.class.getResource("yujie.png")));//图标
lblIcon.setBounds(56, 140, 55, 55);//位置大小
contentPane.add(lblIcon);//添加
}
}

说明:

首先注释很详细。

登录三种情况:

一种是无输入,弹出警告

一种的输入错误,弹出错误

最后是输入账号密码都为yujie,yujie,弹出成功


感谢阅读(谢谢、Thank you、Salamat Do(撒拉玛特朵)、あリがCám o*n(嘉蒙)とゥ(阿里嘎都)、감사합니다 (勘三哈咪瘩)、terima Kasih(

得力马卡系)、kob-khun(寇布库恩)、dhanyavaad(达尼阿瓦德)、toda(透达)、te?ekkür ederim(特谢库尔埃戴里姆)、 

Dzie,kuje(以库以而)、Spasibo(思巴喜柏)、Danke(但可)、shokran(休克朗)、Obrigada(欧布哩嘎搭)、dank u(当Q)、
Merci(梅呵西)、Gracias(格拉喜亚思)、Grazie(格啦姬)、Благодарности、Tak、Kiitos、Díky、Hvala、Mul?umesc

、Takk、Ευχαριστ


模拟QQ登录的更多相关文章

  1. WPF简单模拟QQ登录背景动画

    介绍 之所以说是简单模拟,是因为我不知道QQ登录背景动画是怎么实现的.这里是通过一些办法把它简化了,做成了类似的效果 效果图 大体思路 首先把背景看成是一个4行8列的点的阵距,X轴Y轴都是距离70.把 ...

  2. Android简易实战教程--第二十二话《自定义组合控件模拟qq登录下拉框和其中的一些”小技巧”》

    转载此文章请注明出处:点击打开链接   http://blog.csdn.net/qq_32059827/article/details/52313516 首先,很荣幸此专栏能被CSDN推荐到主页.荣 ...

  3. WPF简单模拟QQ登录背景动画(转)

    介绍 之所以说是简单模拟,是因为我不知道QQ登录背景动画是怎么实现的.这里是通过一些办法把它简化了,做成了类似的效果 效果图 大体思路 首先把背景看成是一个4行8列的点的阵距,X轴Y轴都是距离70.把 ...

  4. 基于vite3+tauri模拟QQ登录切换窗体|Tauri自定义拖拽|最小/大/关闭

    前两天有给大家分享tauri+vue3快速搭建项目.封装桌面端多开窗口.今天继续来分享tauri创建启动窗口.登录窗口切换到主窗口及自定义拖拽区域的一些知识.希望对想要学习或正在学习的小伙伴有些帮助. ...

  5. QQ模拟自动登录实现

    QQ模拟自动登录实现 本篇文章主要介绍"QQ模拟自动登录实现(带验证码)",主要涉及到java 实现QQ自动登录(带验证码)方面的内容,对于java 实现QQ自动登录(带验证码)感 ...

  6. 利用phantomjs模拟QQ自动登录

    之前为了抓取兴趣部落里的数据,研究了下QQ自动登录. 当时搜索了一番,发现大部分方法都已经失效了,于是准备自己开搞. 第一个想到的就是参考网上已有方案的做法,梳理登陆js的实现,通过其他语言重写.考虑 ...

  7. Android(java)学习笔记209:采用get请求提交数据到服务器(qq登录案例)

    1.GET请求:    组拼url的路径,把提交的数据拼装url的后面,提交给服务器. 缺点:(1)安全性(Android下提交数据组拼隐藏在代码中,不存在安全问题)  (2)长度有限不能超过4K(h ...

  8. Android(java)学习笔记212:中文乱码的问题处理(qq登录案例)

    1.我们在之前的笔记中LoginServlet.java中,我们Tomcat服务器回复给客户端的数据是英文的"Login Success","Login Failed&q ...

  9. 日常API之QQ登录

    这次的QQ登录我研究了好久惹,今天终于可以和大家分享啦! 大家都知道,QQ登录有很多方法,例如使用账号密码登录,手机版企鹅扫码登录等等(这些方法只能验证QQ是否成功登录,并没有聊天等功能) 首先就来使 ...

随机推荐

  1. RENAME方法进行分区改造

    1.新建零时表 set time on timing on create table RPTUSER.RPT_TMP_10086BDL_bak ( HANDLEDATE DATE, TEL_CALLI ...

  2. maven项目里jar包显示灰色

    在spring boot项目加载Junit jar包之后,发现jar的颜色是灰色的,和其它的不一样. 带着好奇问了问身边的大神,大神解释说是因为pom文件里依赖项带上了<scope>tes ...

  3. winform创建快捷方式

    /// <summary> /// 创建快捷方式 /// </summary> public class Lnk { /// <summary> /// 创建快捷方 ...

  4. weixin.com的whois信息变更为腾讯了 是准备替换weixin.qq.com吗?

    微信双拼域名weixin.com的whois信息变更,所有人为腾讯.从weixin.com在10月18日这次的whois变更上,透露出腾讯似乎准备启用这个域名.如果启用,毋庸置疑是要应用在腾讯的巨无霸 ...

  5. MySQL中any、some、all关键字

    MySQL中any.some.all关键字http://blog.csdn.net/imzoer/article/details/8266324 ANY关键字: 假设any内部的查询语句返回的结果个数 ...

  6. sql server 跟踪日志

    1,当SQL Server错误日志很大时,手工运行:  exec sp_cycle_errorlog 系统存储过程,即可使用新的日志文件 sqlserver系统自动调用 exec sp_cycle_e ...

  7. 【剑指offer】二叉搜索树与双向链表

    一.题目: 输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表.要求不能创建任何新的结点,只能调整树中结点指针的指向. 二.思路: 对于一棵搜索二叉树来说,中序遍历得到的即是有序的结果,所以整 ...

  8. UE4程序及资源加密保护方案

    UnrealEngine4外壳加密 . Virbox Protector 解决代码反汇编和反dump代码,解决软件盗版与算法抄袭. 虚幻引擎4是由游戏开发者为开发游戏而制作的.完整的游戏开发工具套件. ...

  9. Redis入门到高可用(二)—— Redis启动及使用

    1. 三种启动方式 ♦️  最简启动 ./redis-server 使用Redis默认配置进行启动; ♦️  动态参数启动 * redis-server --port 6380  更改端口为6380并 ...

  10. python中的0,None,False,空容器

    在Python中,None.空列表[].空字典{}.空元组().0等一系列代表空和无的对象会被转换成False.除此之外的其它对象都会被转化成True. 1.0等于False,这点要注意. 2.空的l ...