登录窗口一般很常见,现在让我们自己也来写一个吧!
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; ijava图形化界面实现登录窗口