Java登陆验证码问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java登陆验证码问题相关的知识,希望对你有一定的参考价值。
程序设计思路
随机产生一个6位的字符串
读取用户输入的信息,包括账号密码。
验证用户输入的验证码是不是和产生的随机字符串一样。
如果不是一样的话就提示并且回到重新输入的界面。
如果一样的话就提示登陆成功,并且刷新验证码,以方便下一个用户的使用。
程序流程图
程序源代码
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);
}
}
程序运行截图
以上是关于Java登陆验证码问题的主要内容,如果未能解决你的问题,请参考以下文章