• 实验任务四


    1.设计思想

    利用Math.random()产生一个int类型随机数,循环6次把int类型转换成char类型连接在一起,组成一个验证码字符串。定义各种组件,完成添加和布局。

    2.程序流程图

     

    3.源程序

    import java.awt.*;

    import javax.swing.*;

    public class LoginInterface extends JFrame

    {

    JPanel win1,win2;

    JLabel label1,label2,label3,label4;

    JButton button1,button2,button3,button4,button5;

        JTextField id;

        JTextField verification_code;

        JPasswordField password;

        public static void main(String args[])

        {

         LoginInterface login=new LoginInterface();

        }

        public LoginInterface()

        {

    String result = "";

    for(int i = 0 ; i < 6 ; i ++)//进行5次循环

    {

    int intVal = (int)(Math.random() * 26 + 97);//生成一个97122int型的整数

    result = result + (char)intVal;//intValue强制转换为char后连接到result后面

    }

         win1=new JPanel();

         win2=new JPanel();

        

         label1=new JLabel("登录名",JLabel.CENTER);

         label2=new JLabel("密码",JLabel.CENTER);

         label3=new JLabel("验证码",JLabel.CENTER);

         label4=new JLabel("忘记密码",JLabel.CENTER);

         label4.setFont(new Font("宋体",Font.PLAIN,16));//设置字体大小,

            label4.setForeground(Color.BLUE);//设置字的颜色

            label4.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));

            

         button1=new JButton("登录");

         button1.setForeground(Color.RED);

         button2=new JButton("快速注册");

         button3=new JButton("清除");

         button4=new JButton(result);

         button4.setForeground(Color.GREEN);

         button5=new JButton("退出");

          

         id=new JTextField();

         verification_code=new JTextField();

         password=new JPasswordField();

        

         win1.setLayout(new GridLayout(3,3));

         win1.add(label1);

         win1.add(id);

         win1.add(button3);

         win1.add(label2);

         win1.add(password);

            win1.add(label4);

            win1.add(label3);

            win1.add(verification_code);

            win1.add(button4);

            

            win2.add(button1);

            win2.add(button5);

            win2.add(button2);

        

            this.add(win2,BorderLayout.SOUTH);

            this.add(win1, BorderLayout.CENTER);

            

            this.setTitle("登录器");

            this.setSize(340,200);

            this.setLocation(200,200);

    this.setResizable(false);

    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    this.setVisible(true);

        }

    }

    4.截图

     

    5.总结

    (1)界面太死板

    (2)没有实现事件处理,原想把验证码定义为button按下时即可重新生成。

  • 相关阅读:
    Codeforces 876C Classroom Watch:枚举
    Codeforces 876B Divisiblity of Differences:数学【任意两数之差为k的倍数】
    BZOJ 3943 [Usaco2015 Feb]SuperBull:最大生成树
    BZOJ 3391 [Usaco2004 Dec]Tree Cutting网络破坏:dfs【无根树 节点分枝子树大小】
    markdown常用数学符号小结
    BZOJ3211花神游历各国-线段树&树状数组-(HDU4027同类型)
    一维二维树状数组写法总结
    hdu4352-XHXJ's LIS状压DP+数位DP
    常用Git命令以及出现的状况ing
    bitset简单用法
  • 原文地址:https://www.cnblogs.com/ssyh/p/7639584.html
Copyright © 2020-2023  润新知