我是编码的初学者,我正在试验GUI对象。使用BlueJ时,我在使用图像时遇到了麻烦,当我注意到当我将它们打包成.jar时它们不会显示
我读到的解决方案之一是将图像放在“src”文件夹中,然后在使用它们的类中导入源代码。我试图在这里使用该方法。我有它工作,但我修改了一些代码,现在我找不到它的错误。
import java.awt.*;
import java.io.*;
import javax.swing.*;
public class getResources
{
public static void showPicture(int file)
{
String stringFile = String.valueOf(file);
JFrame window = new JFrame("Picture Window");
JPanel panel = new JPanel();
panel.setLayout(new FlowLayout());
ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
InputStream input = classLoader.getResourceAsStream("/" + stringFile + ".png");
JLabel picture = new JLabel(new ImageIcon("/" + stringFile + ".png"));
JLabel indicate = new JLabel();
indicate.setText(stringFile);
panel.add(indicate);
panel.add(picture);
window.getContentPane().add(panel, BorderLayout.CENTER);
window.pack();
window.setLocationRelativeTo(null);
window.setVisible(true);
}
}
答案 0 :(得分:0)
如果您使用的是嵌入式资源(Jar或类路径上下文中的资源),那么
new ImageIcon("/" + stringFile + ".png")
错误,因为ImageIcon(String)
期望命名值是文件而不是资源。
相反,你应该尝试使用更像
的东西new ImageIcon(classLoader.getResource("/" + stringFile + ".png"))