swing之复杂登陆界面的实现
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之复杂登陆界面的实现的更多相关文章
- java swing 制作一个登陆界面,亲测有效
一.介绍 Swing 是一个为Java设计的GUI工具包. Swing是JAVA基础类的一部分. Swing包括了图形用户界面(GUI)器件如:文本框,按钮,分隔窗格和表. Swing提供许多比AWT ...
- 基于Oracle数据库登陆界面及功能实现 Java版
首先要在Oracle数据库创建表文件,包括建立表头以及关键字(唯一标识符),此次程序所用的表名称为SW_USER_INFO,表头有UNAME.UKEY.USEX等,关键字为UCC,然后添加一条记录,用 ...
- [Django]登陆界面以及用户登入登出权限
前言:简单的登陆界面展现,以及用户登陆登出,最后用户权限的问题 正文: 首先需要在settings.py设置ROOT_URLCONF,默认值为: ROOT_URLCONF = 'www.urls'# ...
- outlook 2016 for windows 每次刷新发送接收邮件会弹出登陆界面
Q: outlook2016 for windows 每次刷新发送接收邮件会弹出登陆界面,office365 ProPlus 都是正常激活了,Word 和Excel都不存在此类问题 A: 排除用户的o ...
- javafx之登陆界面的跳转
界面布局用到的是fxml而非纯java代码,工具是javafx sence builder 账号:account 密码:password 登陆成功: 可以点击退出登陆返回到登陆页面 工程目录: pac ...
- Altium Designer15 卡在登陆界面解决办法:
Altium Designer15 卡在登陆界面解决办法: 在我的电脑系统盘中找到下面目录(注:如果看不到,需要取消隐藏文件选项.) C:\Documents and Settings\Adminis ...
- 描述Linux系统开机到登陆界面的启动过程(计时2分钟)
简述: 1.开机BIOS自检 2.MBR引导 3.grub引导菜单 4.加载内核kernel 5.启动init进程 6.读取inittab文件,执行rc.sysinit,rc等脚本 7.启动minge ...
- alertDialog创建登陆界面,判断用户输入
alertDialog创建登陆界面,需要获取用户输入的用户名和密码,获取控件对象的时候不能像主布局文件那样获得, 需要在onClickListener中获取,代码如下: public boolean ...
- 解决Ubuntu输入正确密码后无法进入桌面,一直停留在登陆界面的问题
在登陆界面按下Ctrl + Shift + F1 进入命令行模式,输入你的用户名和密码之后,敲入下面几行命令就可以了! $ cd - $ sudo chown 你的用户名:你的用户名 .Xauthor ...
随机推荐
- css系列(5)css的运用(一)
从本节开始介绍css配合html可以达到的一些效果. (1)导航栏: <html> <head> <title>示例5.1</title> ...
- hadoop01
RPC:异步系统的调用,webservice是RPC的一种.webservice用于不在同一个公司的系统调用,同一个公司用socket调用.就是RPC. Dubbo淘宝的RPC框架. Hadoop r ...
- android 加固防止反编译-重新打包
http://blog.csdn.net/u010921385/article/details/52505094 1.需要加密的Apk(源Apk) 2.壳程序Apk(负责解密Apk工作) 3.加密工具 ...
- QtGstreamer 编译
一 安装依赖项 1 安装cmake hdhuang@hdh-UBT:~/gstreamer/qt-gstreamer-0.10.2/build$ sudo apt-get install cmake ...
- Ubuntu 12.04下boost库的交叉编译
oost Ver: 1.55.0Compiler : GNU gcc 4.6 for ARM 1. 确保ARM编译成功安装,并配置好环境变量.2. 解压boost压缩包 3. 进入目录执行./boot ...
- PHP验证是否为图片格式文件
/** * 判断是否为图片格式(jpg/jpeg/gif/png)文件 * * @param string $filePath * @return bool|string */ function is ...
- INSPIRED启示录 读书笔记 - 第25章 快速响应阶段
产品出炉后切莫虎头蛇尾 急于“撤军”是项目管理和产品开发流程中的大忌,只要稍微延长项目周期,观察用户对产品的反应,效果就会有天壤之别.这样做投资之小.回报之高会令你瞠目结舌,绝非其他项目阶段可比 产品 ...
- Linux挂载第二块硬盘操作方法
远程SSH登录上Centos服务器后,进行如下操作 提醒:挂载操作会清空数据,请确认挂载盘无数据或者未使用 第一步:列出所有已挂载磁盘 命令: disk -h [root@gluster_node1 ...
- js 元素高度宽度整理
1.1只读属性 所谓的只读属性指的是DOM节点的固有属性,该属性只能通过js去获取而不能通过js去设置,而且获取的值是只有数字并不带单位的(px,em等),如下: 1)clientWidth和clie ...
- composer启用国内镜像网站的配置更改办法
用法: 有两种方式启用本镜像服务: 将以下配置信息添加到 Composer 的配置文件 config.json 中(系统全局配置).见“例1” 将以下配置信息添加到你的项目的 composer.jso ...