2013-06-21 5 views
0

Я пытаюсь отобразить случайные снимки на основе генерации метода Random() (просто попробуйте что-то вроде captcha). Я генерирую случайное значение no из массива, но не знаю, как сопоставить эти no с изображениями. Есть идеи ? Что я сделал до сих пор:отображение случайных изображений с использованием java

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]));  
    } 

} 

}

}

Примечания: Приведенный выше код не включает в себя свинг рамочного кода для отображения изображения.

ответ

1

, но не знает, как отобразить это без какого-либо с изображениями

Не отображать цифры сопоставьте буквы:

Map<String, Image> images = new HashMap<String, Image>(); 
images.put("a", imageA); 
images.put("b", imageB); 
+0

ОК спасибо. Я попробую использовать hashmap –

1

Вы можете захотеть взглянуть на Graphics.drawString()

Вы можете получить объект graphics2D, создав BufferedImage Примечание. Существуют также методы для изменения шрифта. для более продвинутого captcha, вы можете затем деформировать изображение и нарисовать на нем случайные вещи, используя те же самые api.

2

Создайте List<BufferedImage> и используйте Collections.shuffle(), чтобы рандомизировать список. Использование итератора списка будет посещать изображения случайным образом без дубликатов.

+0

Звучит неплохо. Но я предполагаю, что это даст мне только список изображений, и с ним не будет ассоциироваться элемент. на всякий случай, когда я хочу, чтобы пользователь вводил no.s или алфавиты, которые он видит на изображении, я не смогу проверить этот ввод пользователя. пожалуйста, исправьте меня, если я ошибаюсь. –

+1

Помимо доступа к списку через его итератор, вы можете получить к нему доступ по индексу или ссылке. Вместо «List » перетасовываем «Список », причем каждый экземпляр «MyClass» содержит букву и изображение. В качестве ключа используйте первые _n_ элементы. – trashgod

Смежные вопросы