java图形用户登录界面_java图形化界面实现登录窗口
登录窗口一般很常见,现在让我们自己也来写一个吧!
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图形化界面实现登录窗口相关推荐
- java 删除图形界面_Java图形化界面报错?
import java.awt.*; import java.awt.event.*; import javax.swing.*; import 测试新界面.Panel.DeletePlayer; i ...
- win10远程登录Ubuntu14.04图形化界面
一.使用场景 因工作原因,需要在window与Linux系统同时操作.由于虚拟机卡顿,十分影响工作效率,于是找领导又申请一台电脑. Ubuntu主机主要日常代码编译与git操作,window主机主要用 ...
- xshell支持图形_Xshell打不开图形化界面,或许该这样做!
原标题:Xshell打不开图形化界面,或许该这样做! Xshell是一款优秀的安全终端模拟软件,而且可以配合其他一些模拟软件来使用,例如Xftp.Xmanager.Xstart等,各个软件相互配合,能 ...
- PostgreSQL 修改默认用户 postgres 的密码 - 图形化界面操作
如何修改 PostgreSQL 的用户密码呢?网上的方法大都是使用命令行修改,但不知为何我执行总是失败. 找了好多文章试了 n 次还是不行,最后终于摸索出不用命令行,用图形化界面修改密码的简单方法. ...
- oracle10g可视化界面,GUI图形化界面工具
KS3 Explorer使用说明 一.运行要求 本程序基于JDK 1.7 进行开发,需要安装JRE 1.6/1.7/1.8 才可以运行,如果你的电脑上没有java的运行环境,可以到oracle的官网进 ...
- 文字界面与图形化界面
图形化就是在图形化中找到终端,然后在终端中输入命令 文字界面就是纯命令行
- java盒图_Java图形化界面设计——布局管理器之BoxLayout布局(盒式布局)
允许垂直或水平布置多个组件的布局管理器.这些组件将不包装,因此举例来说,垂直排列的组件在重新调整框架的大小时仍然被垂直排列. 用水平组件和垂直组件的不同组合嵌套多面板的作用类似于 GridBagLay ...
- java计算器布局设计_Java图形化界面设计——布局管理器之GridLayout(网格布局) 之计算器...
代码如下: import java.awt.*; import javax.swing.*; public class GridFrame extends JFrame { // 定义字符串数组,为按 ...
- java实现混合运算_java图形化界面实现简单混合运算计算器
写了好几天了终于写完了这个四则运算计算器,总代码放在后面 截图如下: 首先是布局都比较简单,最上面的一个框是总的输出框, 第二个框是每次输入的数字显示在框内, 对于每一个按钮都增加监听器, 对于数字按 ...
最新文章
- linux 学习总结
- PHP学习系列(1)——字符串处理函数(3)
- c#如何操作excel文件、Interior.ColorIndex 色彩列表
- 用神经网络分类无理数和超越数2**0.5,3**0.5,e
- Android log 管理工具
- Django_RBAC_demo2 升级版权限控制组件
- 三菱FX3S,FX3G,FX3U序列PLC控制器编程手册-基本应用指令篇下载
- J2EE是技术还是平台还是框架? 什么是J2EE
- 基于Python获取一些打印机简单信息
- 配置linux磁盘配额前,Linux磁盘配额Quota配置详解
- LLVM SSA 介绍
- 机器学习入门好文,强烈推荐(转载)
- JavaScript学习笔记01——简介(李炎恢JavaScript教程)
- iOS 图像选取器UIImagePickerController
- DELL戴尔Win10双硬盘安装Ubuntu20.04双系统(附带ROS安装教程)
- 切比雪夫不等式证明及应用
- DockerSwarm部署服务一直处于preparing
- 千锋深圳校区相亲会 双蛋之夕不再孤单
- C语言的system函数
- 2018个人年终总结
热门文章
- Mybatis Generator配置文件完整配置详解
- Chrome 显示 err_cert_authority_invalid 的处理方式
- 东芝推出TXZ+TM族高级系列新型M4N组Arm(R) Cortex(R)-M4微控制器
- 12个小球 梅氏砝码问题
- 软件测试需要学什么?年薪30W+的测试工程师需要掌握哪些技能?
- msfvenom捆绑/制作木马程序
- 163VIP邮箱注册申请,新域名、新版至尊邮套餐为商务办公加码!
- JAVA中Explain注解用法_mysql explain用法
- 4DME: A spontaneous 4D micro-expression dataset with multimodalities
- Redis过期key是怎么样清理的?