图像作为组件问题

时间:2012-07-23 02:07:22

标签: java image components

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


}

}

1 个答案:

答案 0 :(得分:1)

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

BufferedImage myPicture = ImageIO.read(FinalProject.class.getResource("logo.png"));