我正在尝试为我的java类做最后的项目。我试图拍摄.png图片并将其用作我可以添加到JFrame的组件。但是,当我尝试执行此操作时,它会抛出异常并执行catch语句中的操作。我不明白为什么会这样做。我将.png文件放在与.java文件相同的文件夹中。
package InventoryApp;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JLabel;
/**
*
* @author Curtis
*/
public class FinalProject extends DFrame
{
//main method
public static void main(String[] args)
{
start();
}
//building splash screen
public static void start()
{ DFrame splashFrame = new DFrame();
try
{
BufferedImage myPicture = ImageIO.read(new File("logo.png"));
JLabel picLabel = new JLabel(new ImageIcon( myPicture ));
splashFrame.add(picLabel);
}
catch(IOException g)
{
JLabel error = new JLabel("Picture Could Not Be Found");
splashFrame.add(error);
}
JButton create = new JButton("Click to Create Item List");
JButton view = new JButton("Click to View Item List");
splashFrame.add(create);
splashFrame.add(view);
}
}
答案 0 :(得分:1)
当您创建一个没有指定路径的File
对象时,它会假定程序是从该目录启动的,不是当前类文件所在的目录。您可能希望改为使用FinalProject.class.getResource()
:
BufferedImage myPicture = ImageIO.read(FinalProject.class.getResource("logo.png"));