1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > java图形用户登录界面_java图形化界面实现登录窗口

java图形用户登录界面_java图形化界面实现登录窗口

时间:2024-03-28 15:47:33

相关推荐

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();

}

}

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

希望与广大网友互动??

点此进行留言吧!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。