所以,我设计了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);
- 首先将图标添加到每个 JLabel
- 然后将图标添加到 ArrayList
- 然后对 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/