Java基础 canvas加载图片问题
加载图片出现异常显示不出来publicclassGameCanvasextendsCanvasimplementsRunnable{booleanPaintState=t...
加载图片出现异常 显示不出来
public class GameCanvas extends Canvas implements Runnable{
boolean PaintState=true;
Image soccerImage;
public GameCanvas(){
try {
soccerImage=ImageIO.read(new File("/image/soccer.jpg"));
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
@Override
public void paint(Graphics g) {
g.drawImage(soccerImage, 50, 50, this);
}
我的图片是加载在 image包中的一个soccer.jpg 的文件
不知道是路径不对还是怎么 , 显示找不图片 。 我想用相对路径 不用绝对路径。
如果这个方法不能使用相对路径 , 我希望能给予新的加载办法, 展开
public class GameCanvas extends Canvas implements Runnable{
boolean PaintState=true;
Image soccerImage;
public GameCanvas(){
try {
soccerImage=ImageIO.read(new File("/image/soccer.jpg"));
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
@Override
public void paint(Graphics g) {
g.drawImage(soccerImage, 50, 50, this);
}
我的图片是加载在 image包中的一个soccer.jpg 的文件
不知道是路径不对还是怎么 , 显示找不图片 。 我想用相对路径 不用绝对路径。
如果这个方法不能使用相对路径 , 我希望能给予新的加载办法, 展开
2个回答
展开全部
package zhidao;
import java.awt.Canvas;
import java.awt.Graphics;
import java.awt.Image;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
public class GameCanvas extends Canvas implements Runnable
{
private static final long serialVersionUID = 1L;
boolean PaintState = true;
Image soccerImage;
public GameCanvas ()
{
try
{
soccerImage = ImageIO.read (this.getClass ().getResourceAsStream ("../image/soccer.jpg"));
System.out.println (soccerImage.getWidth (null));
}
catch (IOException e)
{
e.printStackTrace ();
}
}
@Override
public void paint ( Graphics g )
{
g.drawImage (soccerImage, 50, 50, this);
}
@Override
public void run ()
{}
public static void main ( String[] args )
{
new GameCanvas ();
}
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询