我试图显示基于Random()方法生成的随机图片(只是尝试类似验证码)。我从数组生成随机数,但不知道如何映射这些没有与图像。有任何想法吗 ?我到目前为止所做的事情:
import java.util.Arrays; import java.util.Random;
公共类Gen_Captcha {
static String[] myCaptchaLetters = {"a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","0","1","2","3","4","5","6","7","8","9"};
Gen_Captcha captcha= new Gen_Captcha();
public static void main(String[] args) {
Random randomGenerator = new Random();
for(int i=0;i<5;i++){
int random = randomGenerator.nextInt(62);
System.out.print((myCaptchaLetters[random]));
}
}
}
}
注意:上面的代码不包含用于显示图像的swing框架代码。
答案 0 :(得分:2)
创建List<BufferedImage>
,并使用Collections.shuffle()
随机化列表。使用列表的迭代器将随机访问图像而不重复。
答案 1 :(得分:1)
但不知道如何用图像映射这些不是
不要映射数字,映射字母:
Map<String, Image> images = new HashMap<String, Image>();
images.put("a", imageA);
images.put("b", imageB);
答案 2 :(得分:1)
您可能需要查看Graphics.drawString()
您可以通过创建BufferedImage来获取graphics2D对象 请注意,还有一些方法可以更改字体。 对于更高级的验证码,您可以使用相同的api来扭曲图像并在其上绘制随机内容。