zoukankan      html  css  js  c++  java
  • JAVA学习笔记——ClassLoader中getResource方法的路径参数

      代码如下,代码无需过多关注,看getResource使用的地方就可以,已用注释标出。

     1 import java.awt.Image;
     2 import java.awt.image.BufferedImage;
     3 import java.io.IOException;
     4 import java.net.URL;
     5 import javax.imageio.ImageIO;
     6  
     7 public class GameUtil {
     8     // 工具类最好将构造器私有化。
     9     private GameUtil() {
    10      
    11     } 
    12  
    13     public static Image getImage(String path) {
    14         BufferedImage bi = null;
    15         try {
    16             //getResource方法调用处     
    17             URL u = GameUtil.class.getClassLoader().getResource(path);
    18             bi = ImageIO.read(u);
    19         } catch (IOException e) {
    20             e.printStackTrace();
    21         }
    22         return bi;
    23     }
    24 }    
    View Code
     1 import javax.swing.*;
     2 import java.awt.*;
     3 import java.awt.event.WindowEvent;
     4 import java.awt.event.WindowAdapter;
     5 
     6 public class GameFrame extends JFrame {
     7     public static void main(String[] args){
     8         new GameFrame().lauchFrame();
     9     }
    10 
    11     public void lauchFrame(){
    12         setVisible(true);
    13         setTitle("灰机大战");
    14         setBounds(200, 50, 800, 700);
    15         addWindowListener(new WindowAdapter(){
    16             @Override
    17             public void windowClosing(WindowEvent e) {
    18                 System.exit(0);
    19             }
    20         });
    21     }
    22 
    23     @Override
    24     public void paint(Graphics g){
    25         g.drawImage(bgImage, 0, 0, null);
    26         g.drawImage(planeImage, 400, 650, null);
    27     }
    28 
    29 //给getResource方法传入参数
    30     private Image bgImage = GameUtil.getImage("material/bg.jpg");
    31     private Image planeImage = GameUtil.getImage("material/plane.png");
    32 }
    View Code

    程序运行时抛出异常,原因是resource(即要加载进程序的文件)所存放路径不对,需放到getResource默认路径下,解决方法如下:

    解决,先得知getSource方法默认路径: 

    图示为需要把程序所要用的资源文件放到JavaSe文件夹里。

    注:默认路径下已有“/“斜杠,所以传入参数时前面无需再加"/"。

  • 相关阅读:
    陶哲轩实分析习题8.5.11
    强数学归纳法
    良序集的一节
    陶哲轩实分析习题8.5.12
    陶哲轩实分析习题8.5.12
    陶哲轩实分析习题8.5.11
    阿蒂亚谈数学——我对《数学的统一性》的笔记
    良序集的势的三歧性
    良序集的一节
    云上远程运维的最后那点担心,“云梯”帮你解决
  • 原文地址:https://www.cnblogs.com/Hr666/p/10322558.html
Copyright © 2011-2022 走看看