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

  

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

  

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

     //模拟qq登录窗口   进口java.awt。*;   进口. io . *;   进口java.awt.event。*;   进口javax.swing。*;      公共类QQGUI JFrame延伸实现ActionListener {   私人JLabel userLa;   私人JLabel pwdLa;   私人JLabel verCodeLa;//验证码   私人JTextField userTxt;   私人JPasswordField pwdTxt;   私人JTextField verCodeTxt;//验证码   私人JButton sureBt;   私人JButton quitBt;   私人Mypanel议员;//构造方法   公共QQGUI ()   {   Init ();   }   公共空间Init ()   {   ?new帧(“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。20 setSize (100);//这个。setSize(宽度、高度)   userTxt。setLocation (170、95);//密码输入框   pwdTxt=new JPasswordField ();   pwdTxt。20 setSize (100);   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 (100165);//验证码文本框   verCodeTxt=new JTextField ();   verCodeTxt。20 setSize (100);   verCodeTxt。setLocation (170、180);//验证码   议员=new Mypanel ();   mp。30 setSize (100);   mp。setLocation (280、175);//登录方式选择框   JComboBox xlk=new JComboBox ();   xlk。setSize (60, 20);   xlk。setLocation (250、220);   xlk.addItem(“在线”);   xlk.addItem(“隐身”);   xlk.addItem(“离开”);         this.setLayout(空);   这一点。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(这个);   quitBt.addActionListener(这个);   this.setVisible(真正的);   }//具体事件的处理   公共空间actionPerformed (ActionEvent e)   {//获取产生事件的事件源强制转换   JButton bt=(JButton) e.getSource ();//获取按钮上显示的文本   字符串str=bt.getText ();   如果(str.equals(“登录”))   {   如果(! CheckIsNull ())   {//获取用户所输入的用户名   .trim字符串用户=userTxt.getText () ();//获取用户所输入的密码   .trim字符串pwd=pwdTxt.getText () ();   如果(checkUserAndPwd(用户、pwd))   {//隐藏当前登录窗口   this.setVisible(假);//验证成功创建一个主窗口   主机框架=new大型机();   }   其他的   {//如果错误则弹出一个显示框   JOptionPane窗格=new JOptionPane(“用户或密码错误”);   而且对话框=pane.createDialog(这个,”警告”);   dialog.show ();   }   }   }   其他的   {//调用系统类中的一个正常退出   system . exit (0);   }   }   私人布尔CheckIsNull ()   {   布尔标志=false;   如果(userTxt.getText () .trim ()。=(" "))   {   国旗=true;   }   其他的   {   如果(pwdTxt.getText () .trim ()。=(" "))   {   国旗=true;   }   }   返回国旗;   }   私人布尔checkUserAndPwd(用户的字符串,字符串pwd)   {   布尔结果=false;   试一试   {   FileReader文件=new FileReader (“D: \ \工作区\ \ 8.5 \ \ testGUI.txt MyEclipse ");   BufferedReader bre=new BufferedReader(文件);   字符串str=bre.readLine ();      而(str !=null)   {   String [] str=str.split (", ");   如果(str [0] .equals(用户)   {   如果(str [1] .equals (pwd))   结果=true;   }   str=bre.readLine ();   }   file.close ();   }捕捉(异常交货)   {   System.out.print (" ");   }   返回结果;   }   }//主机类   进口javax.swing。*;   公共类主机扩展JFrame {   公共主机()   {   这一点。setSize (300、300);   this.setVisible(真正的);   }   }//验证码的生成   进口java.awt。*;   进口java.util。*;   公开课Mypanel扩展面板{   公共空间油漆(图形g)   {   int身高=50;   int宽度=90;//验证码框背景颜色   g.setColor (Color.LIGHT_GRAY);//填充验证码背景   g。fillRect(0, 0,宽度、高度);   g.setColor (Color.BLACK);   g。绘制矩形(0,0,宽度,高度1);   随机r=新的随机();//设置干扰点   for (int i=0; i

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