读书人

有关问题2

发布时间: 2012-01-26 19:40:46 作者: rapoo

问题2
import java.applet.*;
import java.awt.*;
public class ShowAnimator extends Applet //shows Exception
{
Image [] m_Images;
int totalImages=14;
int currentImage=0;
public void init()
{
m_Images=new Image[totalImages];
for(int i=0;i <totalImages;i++)
{
m_Images[i]=getImage(getCodeBase(), "images\\img00 "+(i+1)+ ".gif ");
}
}
public void start()
{
currentImage=0;
}
public void paint(Graphics g)
{
g.drawImage(m_Images[currentImage],50,50,this);
currentImage=++currentImage%totalImages;
try
{
Thread.sleep(50);
}
catch(Exception e)
{
}
repaint();
}
public static void main(String [] args)
{
Frame f=new Frame( "DrawImages ");
ShowAnimator s=new ShowAnimator();
f.add(s);
s.init();
f.setSize(200,100);
f.setVisible(true);
}
}

// <applet code= "ShowAnimator.class " width=300 height=300>
// </applet>

错误提示如下:
D:\java\lesson6> java ShowAnimator
Exception in thread "main " java.lang.NullPointerException
at java.applet.Applet.getCodeBase(Unknown Source)
at ShowAnimator.init(ShowAnimator.java:13)
at ShowAnimator.main(ShowAnimator.java:38)


[解决办法]
m_Images[i]=getImage(getCodeBase(), "images\\img00 "+(i+1)+ ".gif ");



这句好像没有获得图片, "images\\img00 " 这样写感觉不太对

f.add(s); // Frame默认布局为BorderLayout, 改为f.add(s, "Cneter ");

读书人网 >J2SE开发

热点推荐