有关验证码输入框的问题,上次的代码并不能将用户名、密码和验证码放在同一界面上。通过上网查询,学习了另一种新的方法。
package day02; import java.awt.GridLayout; import javax.swing.*; public class Code extends JFrame{ private static final long serialVersionUID = 1L; private static final int JFrame = 0; JTextField jTextField1,jTextField2,jTextField3; //定义文本框组件 JPasswordField jPasswordField; //定义密码框组件 JLabel jLabel1,jLabel2,jLabel3; JPanel jp1,jp2,jp3,jp4; JButton jb1,jb2; //创建按钮 public Code() { jTextField1=new JTextField(12); jTextField2=new JTextField(12); jTextField3=new JTextField(createCode()); jPasswordField=new JPasswordField(13); jLabel1=new JLabel("登录名:"); jLabel2=new JLabel("密码:"); jLabel3=new JLabel("验证码:"); jp1=new JPanel(); jp2=new JPanel(); jp3=new JPanel(); jp4=new JPanel(); jb1=new JButton("登录"); jb2=new JButton("快速注册"); this.setLayout(new GridLayout(5,3)); jp1.add(jLabel1); jp1.add(jTextField1); jp2.add(jLabel2); jp2.add(jPasswordField); jp3.add(jLabel3); jp3.add(jTextField2); jp3.add(jTextField3); jp4.add(jb1); jp4.add(jb2); this.add(jp1); this.add(jp2); this.add(jp3); this.add(jp4); this.setSize(300,300); this.setDefaultCloseOperation(JFrame); this.setVisible(true); this.setTitle("请登录"); } public static String createCode() { // 定义一个空字符串 String result = ""; // 进行6次循环 for (int i = 0; i < 6; i++) { // 生成一个97~122的int型的整数 int intVal = (int) (Math.random() * 26 + 97); // 将intValue强制转换为char后连接到result后面 result = result + (char) intVal; } // 输出随机字符串 return result; } public static void main(String[] args) { new Code(); } }
存在的问题:
1、没有验证输入的验证码是否正确
2、这个框打开后无法关闭,必须关闭eclipse才能关闭
3、验证码不是以图片形式生成,也不能做到点击就可以进行刷新
4、登录以及快速注册功能没有实现