登录窗口一般很常见,现在让我们自己也来写一个吧!

ps:很多import是重复的,是因为我是分了几个类写的,必须单独导入

//模拟qq登录窗口

import java.awt.*;

import java.io.*;

import java.awt.event.*;

import javax.swing.*;

public class qqgui extends jframe implements actionlistener{

private jlabel userla;

private jlabel pwdla;

private jlabel vercodela;//验证码

private jtextfield usertxt;

private jpasswordfield pwdtxt;

private jtextfield vercodetxt;//验证码

private jbutton surebt;

private jbutton quitbt;

private mypanel mp;

//构造方法

public qqgui()

{

init();

}

public void init()

{

frame frame = new frame("qq登录");

//创建出控件对象(因为上面只是声明出来,并没有给出实际的空间)

//用户文本

userla = new jlabel();

userla.settext("用户名:");

userla.setsize(60, 50);

userla.setlocation(100, 80);

//密码文本

pwdla = new jlabel();

pwdla.settext("密码:");

pwdla.setsize(50, 50);

pwdla.setlocation(100, 120);

//用户输入框

usertxt = new jtextfield();

usertxt.setsize(100, 20);

//this.setsize(width, height)

usertxt.setlocation(170, 95);

//密码输入框

pwdtxt = new jpasswordfield();

pwdtxt.setsize(100, 20);

pwdtxt.setlocation(170, 135);

//确认按钮

surebt = new jbutton("登录");

surebt.setsize(60, 25);

surebt.setlocation(135, 260);

//退出按钮

quitbt = new jbutton("退出");

quitbt.setsize(60, 25);

quitbt.setlocation(240, 260);

//验证码文本

vercodela = new jlabel();

vercodela.settext("验证码:");

vercodela.setsize(60, 50);

vercodela.setlocation(100,165);

//验证码文本框

vercodetxt = new jtextfield();

vercodetxt.setsize(100, 20);

vercodetxt.setlocation(170, 180);

//验证码

mp = new mypanel();

mp.setsize(100, 30);

mp.setlocation(280, 175);

//登录方式选择框

jcombobox xlk=new jcombobox();

xlk.setsize(60, 20);

xlk.setlocation(250, 220);

xlk.additem("在线");

xlk.additem("隐身");

xlk.additem("离开");

this.setlayout(null);

this.setsize(500, 400);

this.add(userla);

this.add(pwdla);

this.add(usertxt);

this.add(pwdtxt);

this.add(surebt);

this.add(quitbt);

this.add(vercodela);

this.add(vercodetxt);

this.add(mp);

this.add(xlk);

surebt.addactionlistener(this);

quitbt.addactionlistener(this);

this.setvisible(true);

}

//具体事件的处理

public void actionperformed(actionevent e)

{

//获取产生事件的事件源强制转换

jbutton bt = (jbutton)e.getsource();

//获取按钮上显示的文本

string str = bt.gettext();

if(str.equals("登录"))

{

if(!checkisnull())

{

//获取用户所输入的用户名

string user = usertxt.gettext().trim();

//获取用户所输入的密码

string pwd = pwdtxt.gettext().trim();

if(checkuserandpwd(user,pwd))

{

//隐藏当前登录窗口

this.setvisible(false);

//验证成功创建一个主窗口

mainframe frame = new mainframe();

}

else

{

//如果错误则弹出一个显示框

joptionpane pane = new joptionpane("用户或密码错误");

jdialog dialog = pane.createdialog(this,"警告");

dialog.show();

}

}

}

else

{

//调用系统类中的一个正常退出

system.exit(0);

}

}

private boolean checkisnull()

{

boolean flag = false;

if(usertxt.gettext().trim().equals(" "))

{

flag = true;

}

else

{

if(pwdtxt.gettext().trim().equals(" "))

{

flag = true;

}

}

return flag;

}

private boolean checkuserandpwd(string user,string pwd)

{

boolean result = false;

try

{

filereader file = new filereader("d:\\workspaces\\myeclipse 8.5\\testgui.txt");

bufferedreader bre = new bufferedreader(file);

string str = bre.readline();

while(str!=null)

{

string[] strs = str.split(",");

if(strs[0].equals(user))

{

if(strs[1].equals(pwd))

result = true;

}

str = bre.readline();

}

file.close();

}catch(exception ex)

{

system.out.print("");

}

return result;

}

}

//mainframe类

import javax.swing.*;

public class mainframe extends jframe {

public mainframe()

{

this.setsize(300, 300);

this.setvisible(true);

}

}

//验证码的生成

import java.awt.*;

import java.util.*;

public class mypanel extends panel {

public void paint(graphics g)

{

int height = 50;

int width = 90;

//验证码框背景颜色

g.setcolor(color.light_gray);

//填充验证码背景

g.fillrect(0, 0, width, height);

g.setcolor(color.black);

g.drawrect(0, 0, width-1, height-1);

random r = new random();

//设置干扰点

for(int i = 0;i<100;i++)

{

int x = r.nextint(width)-1;

int y = r.nextint(height)-1;

g.drawoval(x, y, 2, 2);

}

g.setfont(new font("黑体",font.bold,20));//设置验证码字体以及大小

g.setcolor(color.red);//设置验证码字体颜色

//生成随机验证码

char[] tmp = ("0123456789abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz").tochararray();

stringbuilder sb = new stringbuilder();

for(int i = 0;i<4;i++)

{

int pos = r.nextint(tmp.length);

char c = tmp[pos];

sb.append(c + " ");

}

g.drawstring(sb.tostring(), 10, 15);//写入验证码

}

}

//下拉框的实现

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

public class xialakuang extends jframe {

private jcombobox combobox;//定义一个组合框

public void xia ()

{

//jpanel panel = new jpanel();//创建一个jpanel面板

combobox = new jcombobox();

combobox.additem("在线");

combobox.additem("隐身");

combobox.additem("离开");

this.add(combobox);

//this.add(panel);

this.setsize(200, 100);

this.setdefaultcloseoperation(jframe.exit_on_close);

this.setvisible(true);

}

}

//测试

public class testqqgui {

/**

* @param args

*/

public static void main(string[] args) {

// todo auto-generated method stub

qqgui frame = new qqgui();

}

}

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

希望与广大网友互动??

点此进行留言吧!

java图形用户登录界面_java图形化界面实现登录窗口相关推荐

  1. java 删除图形界面_Java图形化界面报错?

    import java.awt.*; import java.awt.event.*; import javax.swing.*; import 测试新界面.Panel.DeletePlayer; i ...

  2. win10远程登录Ubuntu14.04图形化界面

    一.使用场景 因工作原因,需要在window与Linux系统同时操作.由于虚拟机卡顿,十分影响工作效率,于是找领导又申请一台电脑. Ubuntu主机主要日常代码编译与git操作,window主机主要用 ...

  3. xshell支持图形_Xshell打不开图形化界面,或许该这样做!

    原标题:Xshell打不开图形化界面,或许该这样做! Xshell是一款优秀的安全终端模拟软件,而且可以配合其他一些模拟软件来使用,例如Xftp.Xmanager.Xstart等,各个软件相互配合,能 ...

  4. PostgreSQL 修改默认用户 postgres 的密码 - 图形化界面操作

    如何修改 PostgreSQL 的用户密码呢?网上的方法大都是使用命令行修改,但不知为何我执行总是失败. 找了好多文章试了 n 次还是不行,最后终于摸索出不用命令行,用图形化界面修改密码的简单方法. ...

  5. oracle10g可视化界面,GUI图形化界面工具

    KS3 Explorer使用说明 一.运行要求 本程序基于JDK 1.7 进行开发,需要安装JRE 1.6/1.7/1.8 才可以运行,如果你的电脑上没有java的运行环境,可以到oracle的官网进 ...

  6. 文字界面与图形化界面

    图形化就是在图形化中找到终端,然后在终端中输入命令 文字界面就是纯命令行

  7. java盒图_Java图形化界面设计——布局管理器之BoxLayout布局(盒式布局)

    允许垂直或水平布置多个组件的布局管理器.这些组件将不包装,因此举例来说,垂直排列的组件在重新调整框架的大小时仍然被垂直排列. 用水平组件和垂直组件的不同组合嵌套多面板的作用类似于 GridBagLay ...

  8. java计算器布局设计_Java图形化界面设计——布局管理器之GridLayout(网格布局) 之计算器...

    代码如下: import java.awt.*; import javax.swing.*; public class GridFrame extends JFrame { // 定义字符串数组,为按 ...

  9. java实现混合运算_java图形化界面实现简单混合运算计算器

    写了好几天了终于写完了这个四则运算计算器,总代码放在后面 截图如下: 首先是布局都比较简单,最上面的一个框是总的输出框, 第二个框是每次输入的数字显示在框内, 对于每一个按钮都增加监听器, 对于数字按 ...

最新文章

  1. linux 学习总结
  2. PHP学习系列(1)——字符串处理函数(3)
  3. c#如何操作excel文件、Interior.ColorIndex 色彩列表
  4. 用神经网络分类无理数和超越数2**0.5,3**0.5,e
  5. Android log 管理工具
  6. Django_RBAC_demo2 升级版权限控制组件
  7. 三菱FX3S,FX3G,FX3U序列PLC控制器编程手册-基本应用指令篇下载
  8. J2EE是技术还是平台还是框架? 什么是J2EE
  9. 基于Python获取一些打印机简单信息
  10. 配置linux磁盘配额前,Linux磁盘配额Quota配置详解
  11. LLVM SSA 介绍
  12. 机器学习入门好文,强烈推荐(转载)
  13. JavaScript学习笔记01——简介(李炎恢JavaScript教程)
  14. iOS 图像选取器UIImagePickerController
  15. DELL戴尔Win10双硬盘安装Ubuntu20.04双系统(附带ROS安装教程)
  16. 切比雪夫不等式证明及应用
  17. DockerSwarm部署服务一直处于preparing
  18. 千锋深圳校区相亲会 双蛋之夕不再孤单
  19. C语言的system函数
  20. 2018个人年终总结

热门文章

  1. Mybatis Generator配置文件完整配置详解
  2. Chrome 显示 err_cert_authority_invalid 的处理方式
  3. 东芝推出TXZ+TM族高级系列新型M4N组Arm(R) Cortex(R)-M4微控制器
  4. 12个小球 梅氏砝码问题
  5. 软件测试需要学什么?年薪30W+的测试工程师需要掌握哪些技能?
  6. msfvenom捆绑/制作木马程序
  7. 163VIP邮箱注册申请,新域名、新版至尊邮套餐为商务办公加码!
  8. JAVA中Explain注解用法_mysql explain用法
  9. 4DME: A spontaneous 4D micro-expression dataset with multimodalities
  10. Redis过期key是怎么样清理的?