我正在尝试制作一个Java桌面应用程序,其中我有一个< code>JLabel来混洗图像。我正在从我的电脑的任意驱动器上的文件夹中检索图像。现在,我想从一个项目文件夹中检索所有图像,该文件夹中的图像文件夹名称是可用的。
F:/>Kiosk
|
|___src
|
|___lib
|
|___koisk
|
|__main1.java
|
|__images
这是我的代码。我怎样才能做到这一点?
public class ImageShuffle1 extends JPanel {
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(1000, new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
update();
}
});
public ImageShuffle1() {
try {
list.add(resizeImage(ImageIO.read(new File("E:\\SOFTWARE\\TrainPIS\\res\\drawable\\c.jpg"))));
list.add(resizeImage(ImageIO.read(new File("E:\\SOFTWARE\\TrainPIS\\res\\drawable\\d.jpg"))));
list.add(resizeImage(ImageIO.read(new File("E:\\SOFTWARE\\TrainPIS\\res\\drawable\\e.jpg"))));
list.add(resizeImage(ImageIO.read(new File("E:\\SOFTWARE\\TrainPIS\\res\\drawable\\f.jpg"))));
} 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);
label.setIcon(new ImageIcon(icon));
}
private void display() {
JFrame f = new JFrame("ImageShuffle");
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.add(this);
f.add(label);
f.pack();
f.setLocationRelativeTo(null);
f.setVisible(true);
}
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
new ImageShuffle1().display();
}
});
}
}
提前谢谢
将所有图像与 src
文件夹并行放置在项目中的图像
文件夹中。
F:/>Kiosk
|
|___src
|
|___lib
|
|___koisk
|
|__main1.java
|
|__images
|
|__c.jpg
|__d.jpg
|__e.jpg
|__f.jpg
使用此代码
list.add(resizeImage(ImageIO.read(new File("images\\c.jpg"))));
list.add(resizeImage(ImageIO.read(new File("images\\d.jpg"))));
list.add(resizeImage(ImageIO.read(new File("images\\e.jpg"))));
list.add(resizeImage(ImageIO.read(new File("images\\f.jpg"))));
-- 编辑 --
你可以试试任何一种
// Read from same package
list.add(resizeImage(ImageIO.read(getClass().getResourceAsStream("c.png"))));
// Read from absolute path
list.add(resizeImage(ImageIO.read(new File("E:\\SOFTWARE\\TrainPIS\\res\\drawable\\c.png"))));
// Read from images folder parallel to src in your project
list.add(resizeImage(ImageIO.read(new File("images\\c.jpg"))));
对所有四张图像重复任何一张。
问题内容: 我正在尝试从文件中加载图像而不使用。这些文件夹是: 我想将图像加载到资产文件夹中。我试过了: 我已经尝试过使用字符串路径“ /TestProject/assets/drawIcon.png”,但是什么也没有。我不知道如何加载该图片! 问题答案: 将目录设置为资源目录,然后从“ /drawIcon.png”位置将图像加载为资源: 如果要创建javafx图像: 在这种情况下,也请将该文件夹
问题内容: 我的工作区中有一个文件夹,但在“ src”之外,其中包含一个文件,使用自定义插件向导时,该文件需要读取才能设置新文件。 除非我确切指定该文件在系统中的位置,否则我无法正确获取此文件的位置并保持获取空指针。我的问题是该文件在插件项目中,但无法获取它的位置。 插件中的文件位置为com.my.plugin / rules / setup.txt 问题答案: 要从已部署的捆绑包中加载资源,您可
我想通过使用“文件类”从项目文件夹中获取文件,我如何做到这一点?
本文向大家介绍sharepoint项目。从列表中检索项目,包括了sharepoint项目。从列表中检索项目的使用技巧和注意事项,需要的朋友参考一下 示例
我已经看到了使用workbook.getAllPictures()从Excel工作簿中提取图像文件并将其保存到本地驱动器的示例代码。但是,我只需要从某些工作表中提取图像文件。有人能提供如何实现这一点的示例代码吗?
问题内容: 我想使用“文件类”从项目文件夹中获取文件,我该怎么办? 问题答案: 嗯,有很多不同的方法来获取Java文件,但这是一般要点。 不要忘记,您至少需要将其包装在a 中,因为File是其中的一部分,这意味着它必须具有try-catch块。 不是要解决Ericson的问题,而是如果您使用的是实际的软件包,则除非明确使用文件的位置,否则文件的位置将有问题。相对路径与Packages混为一谈。 即