Java 如何在Swing中显示随机图像

Java 如何在Swing中显示随机图像,java,swing,collections,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<Int

我想要一个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);

  } 
} 
import java.awt.*;
导入javax.swing.*;
导入java.util.*;
公共类RandomCards扩展了JFrame
{
随机卡片()
{ 
setLayout(新的FlowLayout(FlowLayout.LEFT,25,10));
Map hm=新的HashMap();
int noOfImage=3;
for(int i=0;i
将文件名加载到
ArrayList
中,构造
java.util.Random
并调用
nextInt(ArrayList.size())
以获取随机数。然后在该编号的索引下显示位于数组中的文件


或者,请更具体地回答您的问题。

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

另请参见。