繁体   English   中英

如何使用 Java NetBeans 改组图像

[英]How can I shuffling images using Java NetBeans

所以,我设计了 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 的图标无关,因此当然图标将始终以相同的顺序出现。

如果您希望将标签上的图标打乱,则需要在打乱 ArrayList 之后将图标添加到 label。

就像是:

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM