2011-05-31 78 views
3

我想要一个Swing应用程序,它将从文件夹中随机选取一些图像并显示它们。如何在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); 

    } 
} 
+0

另请参见['Collections.shuffle()'](http://download.oracle.com/javase/6/docs/api /java/util/Collections.html)。 – trashgod 2011-05-31 16:45:43

回答

3

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

8

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

或者,请对您的问题更具体些。