Как показать случайное изображение в Swing - PullRequest
3 голосов
/ 31 мая 2011

Я хочу приложение Swing, которое будет случайным образом выбирать некоторые изображения из папки и показывать их.

Я пробовал что-то подобное, но изображения не отображаются.

import java.awt.*;
import javax.swing.*;
import java.util.*;

 public class RandomCards extends JFrame
 {
  RandomCards()
  { 
   setLayout(new FlowLayout(FlowLayout.LEFT, 25, 10));
    Map<Integer, String> hm = new HashMap<Integer, String>();
     int noOfImage=3;
      for(int i=0; i < noOfImage; i++)
      { 
       hm.put(i, "resources/" + i + ".png");
       }
      double cardNumber = Math.floor(Math.random()*3) + 1;
     add(new JLabel(hm.get(cardNumber))); 
 }


 public static void main (String [] args)
 {
   RandomCards frame = new RandomCards();
   frame.setSize(330, 150);
    frame.setLocationRelativeTo(null);
   frame.setVisible(true);

  } 
} 

Ответы [ 2 ]

8 голосов
/ 31 мая 2011

Загрузите имена файлов в ArrayList, создайте java.util.Random и вызовите nextInt(arraylist.size()), чтобы получить случайное число.Затем отобразите файл, расположенный в массиве под индексом этого числа.

В качестве альтернативы, пожалуйста, будьте немного более конкретны с вашим вопросом.

3 голосов
/ 31 мая 2011

Получил список изображений для папки. Используйте метод File class list (), чтобы получить все имена файлов ((или listFiles (), если вам нужны файлы). Используйте Random, чтобы получить следующее целое число. Используйте Toolkit.getDefaultToolkit (). CreateImage (imgFileName) для создания изображения. Создайте JFrame (или JWindow), создайте JLabel с изображением и добавьте его в JFrame.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...