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 ...
随机推荐
- iOS JS 和 OC交互 / JS 和 native 相互调用
现在app 上越来越多需求是通过UIWebView 来展示html 或者 html5的内容, js 和 native OC代码交互 就非常常见了. js 调用 native OC代码 第一种机制 ( ...
- 02_虚拟机的安装和SecureCRT、FileZilla、Xmanage、UltraEdit工具的介绍
上述几个工具连接不成功的情况,很多时候是因为ssh服务没有安装,CentOS默认安装,不会出现问题,Ubuntu桌面版默认没有安装,需要手动安装,安装部分参考下文SecureCRT部分 一.安装Cen ...
- python中的值传递和引用传递
Python中的变量是没有类型的,我们可以把它看做一个(*void)类型的指针,变量是可以指向任何对象的,而对象才是有类型的. Python中的对象有可变对象(number,string,tuple等 ...
- bootstrap 模态框中弹出层 input不能获得焦点且不可编辑
bootstrap 模态框中弹出层 input不能获得焦点且不可编辑 问题描述:bs框架支持一层model层的情况下,在模态框中弹出了自定义的弹出层.发现自定义弹出层的输入框不能获得焦点且不可编辑. ...
- 进程控制块PCB结构体 task_struct 描述
进程控制块,英文名(Processing Control Block),简称 PCB . 进程控制块是系统为了管理进程设置的一个专门的数据结构,主要表示进程状态. 每一个进程都对应一个PCB来维护进程 ...
- HashMap,LinkedHashMap和TreeMap的区别
Map主要用于存储健值对,根据键得到值,因此不允许键重复(重复会覆盖),但允许值重复. 1. HashMap Hashmap是一个最常用的Map,它根据键的HashCode值存储数据,根据键可以直接获 ...
- iOS_网络编程
网络编程中有以下几种方式向服务器进行提交数据: IOS同步请求.异步请求.GET请求.POST请求 1.同步请求可以从因特网请求数据,一旦发送同步请求,程序将停止用户交互,直至服务器返回数据完成,才可 ...
- 如何在windows10环境下安装Pytorch-0.4.1版本
开始是按照教程:https://blog.csdn.net/xiangxianghehe/article/details/80103095 安装了Pytorch0.4.0,但是安装后发现在import ...
- Kafka高可用环境搭建
Apache Kafka是分布式发布-订阅消息系统,在 kafka官网上对 kafka 的定义:一个分布式发布-订阅消息传递系统. 它最初由LinkedIn公司开发,Linkedin于2010年贡献给 ...
- nohup后台运行jar与关闭
nohup 用途:LINUX命令用法,不挂断地运行命令. 语法:nohup Command [ Arg ... ] [ & ] 描述:nohup 命令运行由 Command 参数和任何相关 ...