我正在编写一个需要在按钮上方添加图片的程序,但是到目前为止,我还没有成功。我查看了这个网站上的其他帖子,包括如何向JButton添加图像。
我的代码:
public class Tester extends JFrame
{
public Tester()
{
JPanel panel = new JPanel();
getContentPane().add(panel);
panel.setLayout(null);
setTitle("Image Test");
setSize(300,300);
setLocationRelativeTo(null);
setDefaultCloseOperation(EXIT_ON_CLOSE);
JButton button = new JButton();
try
{
Image img = ImageIO.read(getClass().getResource("Images\\BBishopB.gif"));
button.setIcon(new ImageIcon(img));
}
catch (IOException ex) {}
button.setBounds(100,100,100,100);
panel.add(button);
}
public static void main(String[] args)
{
Tester test = new Tester();
test.setVisible(true);
}
}
当这段代码运行时,会出现一个错误:Exception in thread "main" java.lang.IllegalArgumentException: input == null! 该错误发生在以下代码行:
Image img = ImageIO.read(getClass().getResource("Images\\BBishopB.gif"));
我不认为这个错误是由于Java代码找不到文件造成的,因为我的Images文件夹在src文件夹中(我使用Eclipse),正如上面链接所建议的那样。
有没有人有什么想法,可能是什么问题呢?
谢谢。
getResource()
的返回值? - vstmgetResource()
。请参见下面的答案。 - davidXYZ