gpt4 book ai didi

java - 如何从项目文件夹中检索图像

转载 作者:太空宇宙 更新时间:2023-11-04 06:54:41 25 4
gpt4 key购买 nike

我正在尝试从我的文件夹图像中随机播放图像,这是我能够做到的。我必须传递图像的名称,但我不想传递图像的名称,我只想给出文件夹的名称,所有图像都应该从那里开始,我该怎么做

这是我的代码

public class main1 extends javax.swing.JFrame {

private JLabel ecause = new JLabel();
private List<BufferedImage> list = new ArrayList<BufferedImage>();
private List<BufferedImage> shuffled;
private JLabel label = new JLabel();
private int width = 700;
private int height = 700;
private Timer timer = new Timer(4000, new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
update();
}
});

public main1() {
this.getContentPane().setBackground(new java.awt.Color(153, 153, 0));
this.setUndecorated(true);
ecause.setText(" eCause List");
ecause.setBounds(0, 1278, 496, 88);
ecause.setFont(new java.awt.Font("Times New Roman", 1, 40));
ecause.setBackground(new java.awt.Color(255, 153, 0));
ecause.setOpaque(true);
this.add(ecause);
initComponents();
try {
list.add(resizeImage(ImageIO.read(new File("images\\Picture2.png"))));
list.add(resizeImage(ImageIO.read(new File("images\\Picture3.png"))));
list.add(resizeImage(ImageIO.read(new File("images\\Picture4.png"))));
list.add(resizeImage(ImageIO.read(new File("images\\Picture5.png"))));
} catch (IOException e) {
e.printStackTrace();
}
shuffled = new ArrayList<BufferedImage>(list);
Collections.shuffle(shuffled);
timer.start();

}

private BufferedImage resizeImage(BufferedImage originalImage) throws IOException {
BufferedImage resizedImage = new BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB);
Graphics2D g = resizedImage.createGraphics();
g.drawImage(originalImage, 0, 0, width, height, null);
g.dispose();
return resizedImage;
}

private void update() {
if (shuffled.isEmpty()) {
shuffled = new ArrayList<BufferedImage>(list);
Collections.shuffle(shuffled);
}
BufferedImage icon = shuffled.remove(0);
jLabel3.setIcon(new ImageIcon(icon));
}
}

如何实现我的输出?

最佳答案

您可以像这样列出文件夹中包含的每个文件:

File[] files = new File("images/").listFiles();

请注意,它还会提供子目录。

所以而不是

list.add(resizeImage(ImageIO.read(new File("images\\Picture2.png"))));
list.add(resizeImage(ImageIO.read(new File("images\\Picture3.png"))));
list.add(resizeImage(ImageIO.read(new File("images\\Picture4.png"))));
list.add(resizeImage(ImageIO.read(new File("images\\Picture5.png"))));

您可以简单地循环 listFiles 方法给出的每个文件。您还可以使用listFiles(FileFilter)为了过滤掉每个不是图像的文件。

关于java - 如何从项目文件夹中检索图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22911569/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com