package jiemian;

import gonggong.message;
import gonggong.messageType;
import gonggong.user;
import gongju.glhylb;
import gongju.glxc; import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Cursor;
import java.awt.Font;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.io.ObjectOutputStream; 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.JTabbedPane;
import javax.swing.JTextField; import moxing.yanzheng; public class denglu extends JFrame implements ActionListener,KeyListener{ JPanel jp1,jp2,jp2_1,jp2_2,jp2_11,jp2_12,jp2_13,jp2_14,jp2_3,jp3,jp3_1,jp3_2,jp3_3; JLabel jl1,jl2,jl3,jl4,jl5; JTextField jt1;
JPanel jta1,jta2;
JPasswordField jt2; JButton jb1,jb2,jb3,jb4; JCheckBox jcb1,jcb2; JTabbedPane jtp; public denglu()
{
jp1=new JPanel();
jl1=new JLabel(new ImageIcon("image/DL.jpg"));
jp1.add(jl1); jp2_1=new JPanel();
jl2=new JLabel("QQ号码",JLabel.CENTER);
jl3=new JLabel("QQ密码",JLabel.CENTER);
jl4=new JLabel("忘记密码",JLabel.CENTER);
jl4.setFont(new Font("宋体",Font.PLAIN,));
jl4.setForeground(Color.blue);
jl5=new JLabel("<html><a href='www.qq.com'>申请密码保护</a>");
jl5.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR)); jt1=new JTextField();
jta1=new JPanel();
jta1.add(jt1);
jt2=new JPasswordField();
jt2.addKeyListener(this);
jta2=new JPanel();
jta2.add(jt2); jb1=new JButton("清除号码");
jp2_11=new JPanel();
jp2_11.add(jb1); jcb1=new JCheckBox("隐身登录"); jcb2=new JCheckBox("记住密码"); jp2_1.setLayout(new GridLayout(,));
jp2_1.add(jl2);jp2_1.add(jta1);jp2_1.add(jp2_11);
jp2_1.add(jl3);jp2_1.add(jta2);jp2_1.add(jl4);
jp2_1.add(jcb1);jp2_1.add(jcb2);jp2_1.add(jl5); jp2_2=new JPanel();
jp2_3=new JPanel();
jtp=new JTabbedPane();
jtp.add("QQ号码",jp2_1);
jtp.add("手机号码",jp2_2);
jtp.add("电子邮件",jp2_3); jb2=new JButton("登录");
jb2.addActionListener(this);
jb3=new JButton("取消");
jb4=new JButton("注册向导");
jp2_12=new JPanel();
jp2_12.add(jb2); jp2_13=new JPanel();
jp2_13.add(jb3); jp2_14=new JPanel();
jp2_14.add(jb4);
jp3=new JPanel();
jp3.setLayout(new GridLayout(,));
jp3.add(jp2_12);
jp3.add(jp2_13);
jp3.add(jp2_14); this.add(jp1,BorderLayout.NORTH);
this.add(jtp);
this.add(jp3,BorderLayout.SOUTH); this.setTitle("用户登陆");
this.setSize(,);
this.setLocation(, );
this.setResizable(false);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true); } public static void main(String [] args)
{
denglu dl=new denglu(); } @Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
if(e.getSource()==jb2)
{
user u=new user();
u.setUserid(jt1.getText().trim());
//密码要特殊处理下
u.setPasswd(new String(jt2.getPassword()));
yanzheng yz=new yanzheng();
if(yz.check(u))
{
new liebiao(u.getUserid());
this.dispose(); }
else
{
JOptionPane.showMessageDialog(this, "用户名或密码错误"); }
}
} @Override
public void keyPressed(KeyEvent e1) {
// TODO Auto-generated method stub
if(e1.getKeyCode()==KeyEvent.VK_ENTER)
{ user u=new user();
u.setUserid(jt1.getText().trim());
u.setPasswd(new String(jt2.getPassword()));
yanzheng yz=new yanzheng();
if(yz.check(u))
{
try{
liebiao lb= new liebiao(u.getUserid());
glhylb.addliebiao(u.getUserid(), lb);
message m2=new message();
m2.setMesType(messageType.message_get_onlinefriend);
m2.setSender(u.getUserid());
ObjectOutputStream oos=new ObjectOutputStream(glxc.getljfwxc(u.getUserid()).getS().getOutputStream());
oos.writeObject(m2);
}catch(Exception e){e.printStackTrace();}
this.dispose(); }
else
{
JOptionPane.showMessageDialog(this, "用户名或密码错误"); } }
} @Override
public void keyReleased(KeyEvent arg0) {
// TODO Auto-generated method stub } @Override
public void keyTyped(KeyEvent arg0) {
// TODO Auto-generated method stub }
}

swing之复杂登陆界面的实现的更多相关文章

  1. java swing 制作一个登陆界面,亲测有效

    一.介绍 Swing 是一个为Java设计的GUI工具包. Swing是JAVA基础类的一部分. Swing包括了图形用户界面(GUI)器件如:文本框,按钮,分隔窗格和表. Swing提供许多比AWT ...

  2. 基于Oracle数据库登陆界面及功能实现 Java版

    首先要在Oracle数据库创建表文件,包括建立表头以及关键字(唯一标识符),此次程序所用的表名称为SW_USER_INFO,表头有UNAME.UKEY.USEX等,关键字为UCC,然后添加一条记录,用 ...

  3. [Django]登陆界面以及用户登入登出权限

    前言:简单的登陆界面展现,以及用户登陆登出,最后用户权限的问题 正文: 首先需要在settings.py设置ROOT_URLCONF,默认值为: ROOT_URLCONF  = 'www.urls'# ...

  4. outlook 2016 for windows 每次刷新发送接收邮件会弹出登陆界面

    Q: outlook2016 for windows 每次刷新发送接收邮件会弹出登陆界面,office365 ProPlus 都是正常激活了,Word 和Excel都不存在此类问题 A: 排除用户的o ...

  5. javafx之登陆界面的跳转

    界面布局用到的是fxml而非纯java代码,工具是javafx sence builder 账号:account 密码:password 登陆成功: 可以点击退出登陆返回到登陆页面 工程目录: pac ...

  6. Altium Designer15 卡在登陆界面解决办法:

    Altium Designer15 卡在登陆界面解决办法: 在我的电脑系统盘中找到下面目录(注:如果看不到,需要取消隐藏文件选项.) C:\Documents and Settings\Adminis ...

  7. 描述Linux系统开机到登陆界面的启动过程(计时2分钟)

    简述: 1.开机BIOS自检 2.MBR引导 3.grub引导菜单 4.加载内核kernel 5.启动init进程 6.读取inittab文件,执行rc.sysinit,rc等脚本 7.启动minge ...

  8. alertDialog创建登陆界面,判断用户输入

    alertDialog创建登陆界面,需要获取用户输入的用户名和密码,获取控件对象的时候不能像主布局文件那样获得, 需要在onClickListener中获取,代码如下: public boolean ...

  9. 解决Ubuntu输入正确密码后无法进入桌面,一直停留在登陆界面的问题

    在登陆界面按下Ctrl + Shift + F1 进入命令行模式,输入你的用户名和密码之后,敲入下面几行命令就可以了! $ cd - $ sudo chown 你的用户名:你的用户名 .Xauthor ...

随机推荐

  1. css系列(4)简介

        本节用来简单介绍css.     (1)css: CSS 指层叠样式表 (Cascading Style Sheets): 功能以及作用:1.样式定义如何显示 HTML 元素; 2.样式通常存 ...

  2. Linux Shell编程 循环语法

    for循环 for 循环是固定循环,也就是在循环时已经知道需要进行几次循环.有时也把 for 循环称为计数循环.语法: for 变量 in 值1 值2 值3… do 程序 done 在这种语法中,fo ...

  3. linux 网卡buffer大小

    参考截取一部分:https://blog.csdn.net/ysu108/article/details/7764461 在linux下可以修改协议栈改变tcp缓冲相关参数: 修改系统套接字缓冲区 e ...

  4. Python编程-绑定方法、软件开发

    一.绑定方法与非绑定方法 1.绑定方法 绑定给谁,谁来调用就自动将它本身当作第一个参数传入 (1)绑定到类的方法:用classmethod装饰器装饰的方法. 为类量身定制 类.boud_method( ...

  5. rem布局原理

    昨天去面试,面试官竟然说他们用媒体查询针对不同的屏幕宽度做了9个不同的rem布局,呵呵... eg: html{font-size:20px;} div{width:16rem;height:100p ...

  6. mysql的一些密码错误问题,并从windows登录linux主机的mysql

    mysqld_safe --skip-grant-tables& mysql -u root mysql 可以修改密码: mysql>update mysql.user set auth ...

  7. Cocos2d-x项目移植到WP8系列之二:开篇

    原文链接: http://www.cnblogs.com/zouzf/p/3970130.html 开发环境一笔带过吧,主板和CPU要支持虚拟化技术,要开启才行,装个64位win8.1系统,win8不 ...

  8. groupby和agg的使用

    先来看一段代码: 分析下groupby和agg的联合使用: reset_index()表示重新设置索引 agg传进来的统计特征: 按照A这一列作聚合,C这一列作统计 注意:df = df.groupb ...

  9. Kubernetes Heapster

    Heapster是容器集群监控和性能分析工具,HPA.Dashborad.Kubectl top都依赖于heapster收集的数据. 但是Heapster从kubernetes 1.8以后已经被遗弃了 ...

  10. Adroid真机调试

    几次想学Android,都因为启动模拟器调试时太慢而放弃. 今天终于搞通了真机调试,记录一下: 1)USB线把手机和电脑连接. 2)Adroid手机启用USB调试. 3)命令行运行 adb devic ...