尝试将图像添加到类目录时,我试图找出问题所在。 (这样做当我导出为可运行的JAR时,图像包含在包中)。
所以我得到了位于C:\ Users \ sean \ workspace \ myApps \ src \ testing'中的strawberry.jpg文件。 你能告诉我我失踪的是什么吗? 谢谢!
package testing;
import java.awt.*;
import javax.swing.*;
public class IconTest {
public static void main(String[] arguments) {
JFrame frame1 = new JFrame();
frame1.setTitle("Frame1");
frame1.setSize(500, 500);
frame1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
FlowLayout flo = new FlowLayout();
frame1.setLayout(flo);
JLabel label1 = new JLabel(new ImageIcon(
IconTest.class.getResource("strawberry.jpg")));
frame1.add(label1);
frame1.setVisible(true);
}
}
答案 0 :(得分:1)
我会使用SomeClass.class.getResourceAsStream("...")
,如下例所示:
public static void main(String[] arguments) throws IOException {
JFrame frame1 = new JFrame();
frame1.setTitle("Frame1");
frame1.setSize(500, 500);
frame1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
FlowLayout flo = new FlowLayout();
frame1.setLayout(flo);
InputStream resourceAsStream = IconTest.class.getResourceAsStream("strawberry.jpg");
Image image = ImageIO.read(resourceAsStream);
JLabel label1 = new JLabel(new ImageIcon(image));
frame1.add(label1);
frame1.setVisible(true);
}
答案 1 :(得分:1)
将图像文件放在编译类所在的目录中,并通过在文件名前添加“/”来更改yor代码中的路径:
JLabel label1 = new JLabel(new ImageIcon(
IconTest.class.getResource("/strawberry.jpg")));
在类路径中搜索资源。