此代码抛出一个NullPointerException
,我不明白为什么。
try {
imageIcon = new ImageIcon(ImageIO.read(new File("res/Background.png")));
backgroundImage = imageIcon.getImage();
signIn = new MyButton("SignIn", ImageIO.read(new File("res/SignIn.png")), ImageIO.read(new File("res/SignInHover.png")));
signUp = new MyButton("SignUp", ImageIO.read(new File("res/SignUp.png")), ImageIO.read(new File("res/SignUpHover.png")));
back = new MyButton("Back", ImageIO.read(new File("res/Back.png")), ImageIO.read(new File("res/BackHover.png")));
exit = new MyButton("Exit", ImageIO.read(new File("res/Exit.png")), ImageIO.read(new File("res/ExitHover.png")));
} catch(IOException e) {
JOptionPane.showMessageDialog(null, "");
}
res/
是项目根目录中的源文件夹,其中包含此段代码中使用的所有图像,但我无法使其工作。我已经尝试使用getClass().getResource()
(它在Eclipse内部但不是从.jar文件中运行)和getClass().getResourceAsStream()
(它抛出一个异常,告诉输入流是空的)但是没有用。
P.S。:MyButton
是一个用户定义的类,它扩展了JButton
并具有构造函数MyButton(String, final BufferedImage, final BufferedImage)
。
答案 0 :(得分:0)
毕竟我成功只是在我的源(即res下)文件夹下制作图像文件夹。并使用方法
ImageIO.read(getClass().getResource("/images/SignIn.png"));