java - 如何使用 Java NetBeans 打乱图像

标签 java

所以,我设计了12个标签和1个按钮,并且我有一个包含12张图像的文件夹;我的问题是,每次按下按钮时,如何使自动图像从文件夹随机播放到 12 个标签?一切正常,但问题是图像没有随机播放。我将非常感谢任何帮助

我使用的代码是:

File file = new File("src/Images");
String[] imageNames = file.list();
    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {     
    Image im1=new ImageIcon(this.getClass().getResource("/Images/img1.png")).getImage();
    ImageIcon iconLogo1 = new ImageIcon(im1);
    Image im2=new ImageIcon(this.getClass().getResource("/Images/img2.png")).getImage();
    ImageIcon iconLogo2 = new ImageIcon(im2);
    Image im3=new ImageIcon(this.getClass().getResource("/Images/img3.png")).getImage();
    ImageIcon iconLogo3 = new ImageIcon(im3);
    jLabel1.setIcon(iconLogo1);
    jLabel2.setIcon(iconLogo2);
    jLabel3.setIcon(iconLogo3);
    ArrayList <ImageIcon> list= new ArrayList<>();
list.add(iconLogo3);
list.add(iconLogo2);
list.add(iconLogo1);
    Collections.shuffle(list);
    } 

最佳答案

您希望看到什么:

jLabel1.setIcon(iconLogo1);
jLabel2.setIcon(iconLogo2);
jLabel3.setIcon(iconLogo3);
ArrayList <ImageIcon> list= new ArrayList<>();
list.add(iconLogo3);
list.add(iconLogo2);
list.add(iconLogo1);
Collections.shuffle(list);
  1. 首先将图标添加到每个 JLabel
  2. 然后将图标添加到 ArrayList
  3. 然后对 ArrayList 进行洗牌

对 ArrayList 进行打乱与添加到 JLabel 中的 Icon 无关,因此当然 Icon 始终会以相同的顺序出现。

如果您希望标签上的图标被打乱,那么您需要在打乱 ArrayList 后将图标添加到标签中。

类似于:

Collections.shuffle(list);
jLabel1.setIcon(list.get(0));
jLabel2.setIcon(list.get(1));
jLabel3.setIcon(list.get(2));

当然,如果您有 12 个标签,您就不想手动编写代码。您还应该将 12 个标签添加到数组(或 ArrayList)中,然后编写一个循环来设置数组中每个标签的图标。

关于java - 如何使用 Java NetBeans 打乱图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62175240/

相关文章:

java - JScrollPane 现在显示其视口(viewport)

java - 如何在不同进程中使用 LocalBroadcastManager 在 Activity 和服务之间进行通信

java - 当我触摸屏幕时 Android 应用程序崩溃 - nullPointerException

java - java中(char)i或(int)i的目的和含义是什么?

java - eclipse 中的 "The package java.sql is not accessible."

java - JPanel 高度不会立即更新

java - Java 中统计文本文件中字符串的出现次数

java - 在 Java 中混淆 SSL 客户端 Hello v2 消息

java - 在 Java 正则表达式中匹配 y 组中的 x

java - 为什么 Calendar.setTimeZone() 不会影响从数据库检索的日期