Java从2个目录中读取图像



如何在屏幕上放置两个目录以上的图像?这是我的代码:

package mousemaze;
// Imports
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
import javax.swing.ImageIcon;
import javax.swing.JLabel;
import javax.swing.JPanel;
public class LoadScreen extends JPanel {
    private static final long serialVersionUID = 1L;
    private String logoPath = "././images/snakyboLogo.png";
    BufferedImage logoImage;
    JLabel logoLabel;
    public LoadScreen() {
        try {
            System.out.println(logoPath);
            logoImage = ImageIO.read(new File(logoPath));
            System.out.println("1");
            logoLabel = new JLabel(new ImageIcon(logoImage));
            System.out.println("2");
            add(logoLabel);
            System.out.println("End");
        } catch (IOException ex) {
            System.out.println("Fail");
        }
    }
}

但在上失败了

logoImage = ImageIO.read(new File(logoPath));

所以我认为它在该目录中找不到上的指定文件。我的文件夹结构是:

  • src\mousemaze\LoadScreen.java
  • src\images\snakyboLogo.png

所以我猜这不是我在一个完全不同的包中指定文件的方式,那么我该怎么做呢?

  • 问题1-路径文字.解析为当前目录,我认为您打算使用..
  • 问题2-在Java中使用相对路径读取文件是不可取的。如果你的应用程序部署在你假设的结构之外的任何地方,它都会崩溃

您将从使用资源流中获得更多里程

InputStream logoStream = getClass().getResourceAsStream("/images/snakyboLogo.png");
if(logoStream != null) logoImage = ImageIO.read(logoStream);

相关内容

  • 没有找到相关文章

最新更新