gpt4 book ai didi

java - 加载 .jpeg 并设置为 JLabel?

转载 作者:行者123 更新时间:2023-12-01 14:41:11 25 4
gpt4 key购买 nike

所以我正在做这个类作业。我想用 3x3 JLabels 随机填充 X 或 Y 图像的 JFrame。我从 google 获取了一些小图像,并将它们放入 Eclipse 中 Java 项目的源文件夹中,并将它们命名为“X.jpeg”和“O.jpeg”。

当我只使用字符串“X”和“O”时,我就可以使用它,但我不知道如何让图像工作。非常感谢任何建议。

好的,这就是我现在正在使用的。我正在将 Jlabel 作为图像添加到 JFrame!!!!

Blockquote

import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.File;
import java.net.URL;
import javax.imageio.ImageIO;
import javax.swing.*;


public class Chapter12_7 extends JFrame {

public static void main(String[] args) {
Chapter12_7 frame = new Chapter12_7();
frame.setSize(400, 400);
frame.setTitle("Chapter12_7");
frame.setLocationRelativeTo(null);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
public Chapter12_7(){

BufferedImage x = ImageIO.read(new File("/X.jpeg"));
BufferedImage o = ImageIO.read(new File("/O.jpeg"));
JPanel p1 = new JPanel();
p1.setLayout(new GridLayout(3, 3));
add(p1);


int[] ran = new int[9];

for(int j = 0; j < 9; j++){
ran[j] = (int) (Math.random() * 2);
}

for (int i = 0; i < 9; i++){
if(ran[i] == 0){
p1.add(new JLabel( x , JLabel.CENTER));
}
else
p1.add(new JLabel( o , JLabel.CENTER));
}
}

}

最佳答案

不要使用new ImageIcon("X.jpeg");,这假设X.jpeg是存在于同一硬盘上的文件上下文作为您执行程序的位置。如果出现问题,ImageIcon也不会抛出任何异常,这非常烦人。

如果文件存储在 Jar 文件中,则需要使用 getClass().getResource("/X.jpeg") 来代替。

您还应该使用ImageIO.read来读取图像。如果无法读取图像,这将(除其他外)引发异常。

看看Reading/Loading an Image了解更多详情。

另外,我认为在 Eclipse 中,资源应该存储在 resources 文件夹中,这些资源会自动添加到您的应用程序 Jar 中。我不确定如果它们位于您的源目录中会发生什么,因为我不使用 Eclipse。

关于java - 加载 .jpeg 并设置为 JLabel?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15940129/

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