Java简单登陆(验证码问题)
in Java入门小程序 with 0 comment

Java简单登陆(验证码问题)

in Java入门小程序 with 0 comment

程序设计思路

随机产生一个6位的字符串
读取用户输入的信息,包括账号密码。
验证用户输入的验证码是不是和产生的随机字符串一样。
如果不是一样的话就提示并且回到重新输入的界面。
如果一样的话就提示登陆成功,并且刷新验证码,以方便下一个用户的使用。

程序流程图

4.jpg

程序源代码

import java.awt.Color;
import java.awt.Component;


public static void main(String[] args) {
    // TODO 自动生成的方法存根
JFrame frame=new JFrame("登陆测试");
frame.setBounds(500, 300, 350, 200);
frame.setSize(350,200);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);    
Panel panel=new Panel();
frame.add(panel);
placeCompoents(panel);
panel.setBackground(Color.LIGHT_GRAY);
frame.setVisible(true);
}
private static void placeCompoents(Panel panel) {
    // TODO 自动生成的方法存根
panel.setLayout(null);
//姓名信息
JLabel userLabel=new JLabel("User");
userLabel.setBounds(10, 20, 80, 25);
panel.add(userLabel);
JTextField userText=new JTextField(20);
userText.setBounds(100, 20, 165, 25);
panel.add(userText);
//密码信息
JLabel passwordLabel=new JLabel("password");
passwordLabel.setBounds(10, 50, 80, 25);
panel.add(passwordLabel);
JPasswordField passwordText=new JPasswordField(20);
passwordText.setBounds(100, 50, 165, 25);
panel.add(passwordText);
//验证码信息
String code="";
for(int i=0;i<6;i++) {        
    int intVal=(int)(Math.random()*26+97);
    code=code+(char)intVal;    
}
String codex=code;
JLabel ident=new JLabel(code);
ident.setBounds(200, 80, 80, 25);
panel.add(ident);
// 验证码文本域
JLabel codes=new JLabel("codes");
codes.setBounds(10, 80, 80, 25);
panel.add(codes);
JTextField codeText=new JTextField(6);
codeText.setBounds(100, 80, 80, 25);
panel.add(codeText);
//按钮
JButton loginButton=new JButton("login");
loginButton.setBounds(100, 100, 80, 25);
panel.add(loginButton);
loginButton.addActionListener(new ActionListener() {    
public void actionPerformed(ActionEvent e) {
    String c=codeText.getText();
    String u=userText.getText();
    char[] p1=passwordText.getPassword();
    String p="";
    p=p.valueOf(p1);
    if(c.equals(codex))
         {
         JOptionPane.showMessageDialog(null,"hello "+u+",欢迎使用!祝您一天愉快");    
//             userText.setText("你妈妈喊你回家吃饭");
         passwordText.setText("");
         codeText.setText("");
         String code="";
            for(int i=0;i<6;i++) {        
                int intVal=(int)(Math.random()*26+97);
                code=code+(char)intVal;    
            }
            String codex=code;
            ident.setText(codex);
         }
     else 
         {
         JOptionPane.showMessageDialog(null,"验证码错误");         
        }     
     }         
}   );
JButton exit=new JButton("exit");
exit.addActionListener(
new ActionListener() {    
public void actionPerformed(ActionEvent e) {
    
 System.exit(0);  
}
}     );
exit.setBounds(200, 100, 80, 25);
panel.add(exit);

}

}

程序运行截图

4.1.jpg

4.2.jpg

4.3.jpg

Responses