如何在Swing中显示随机图像

时间:2011-05-31 08:54:25

标签: java swing collections

我想要一个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 个答案:

答案 0 :(得分:8)

将文件名加载到ArrayList,构建java.util.Random并调用nextInt(arraylist.size())以获取随机数。然后在该数字的索引下显示位于数组中的文件。

或者,请对您的问题稍微具体一点。

答案 1 :(得分:3)

获取该文件夹的图像列表。使用File class list()方法获取所有文件名(如果需要文件,则使用listFiles())。使用Random获取下一个整数。 使用Toolkit.getDefaultToolkit()。createImage(imgFileName)来创建图像。 创建一个JFrame(或JWindow),使用该图像创建一个JLabel并添加到JFrame。