java问题:为什么我的图片显示不了,正方形却能显示?代码如下!!

public class DrawImage extends JFrame {
MainPane pane=new MainPane();
Text T=new Text();
public DrawImage(){
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 500, 300);
add(pane);
setVisible(true);
}
class MainPane extends JPanel{
@Override
public void paint(Graphics g) {
T.Draw(g);
}
}
public static void main(String[] args) {
new DrawImage();
}
}

public class Text extends JFrame {
DrawImage.MainPane p;
public Image img;
public Text(){
URL imgurl=Text.class.getResource("/img/image.jpg");
img=Toolkit.getDefaultToolkit().getImage(imgurl);
}
public Text(DrawImage.MainPane p){
this.p=p;
}
void Draw(Graphics g){
g.drawImage(img, 50, 50, p);
g.fillRect(100, 100, 50, 50);
}
}

第1个回答  推荐于2016-01-25

把image.jpg放到class下的img目录,就没问题了。


Class.getResource("")   返回的是当前Class这个类所在包开始的位置
Class.getResource("/") 返回的是classpath的位置
getClassLoader().getResource("")  返回的是classpath的位置
getClassLoader().getResource("/")  错误的!!

运行时想获得文件,得从最终生成的.class文件为着手点,不要以.java文件的路径为出发点,因为真正使用的就是.class,不会拿个.java文件就使用,因为java是编译型语言嘛


追问

没懂啊!!大神能不能说详细点?

本回答被提问者采纳
相似回答