0

我正在尝试为我的 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);


}

}
4

1 回答 1

1

当您创建一个File没有指定路径的对象时,它假定启动程序的目录,而不是当前类文件所在的目录。您可能希望改用FinalProject.class.getResource()

BufferedImage myPicture = ImageIO.read(FinalProject.class.getResource("logo.png"));
于 2012-07-23T02:14:22.073 回答