簡體   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