好奇怪!!frame里repaint不调用paint方法吗????
我在action方法里调用repaint() 为什么不重打印啊???
单独让paint打印三种情况就是对的!
高手帮帮我啊~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
public void paint(Graphics g)
{
if (firstTime)
{
return;
}
gameMap=new GameMap(m,n,lev);
inIcons=new ImageIcon[m][n];
icons=new Image[m][n];
for (int i=1;i<=m;i++)
{
for (int j=1;j<=n;j++)
{
int k=gameMap.map[i][j];
inIcons[i-1][j-1]=new ImageIcon
("D:/My Documents/HowToConnect/image/icon"+k+".jpg");
icons[i-1][j-1]=inIcons[i-1][j-1].getImage();
}
}
int posX=60;
int posY=80;
for (int j=0;j<n;j++)
{
for (int i=0;i<m;i++)
{
g.drawImage(icons[i][j],posX,posY,this);
posX+=60;
}
posX=60;
posY+=60;
}
}
public boolean action (Event e,Object o)
{
if (e.target instanceof MenuItem)
{
if (e.arg.equals("About"))
about=new About(this);
else if (e.arg.equals("Easy"))
{
level=1; m=12; n=7; lev=21;
firstTime=false;
repaint();
}
else if (e.arg.equals("Normal"))
{
level=2; m=14; n=8; lev=28;
firstTime=false;
repaint();
}
else if (e.arg.equals("Hard"))
{
level=3; m=16; n=9; lev=36;
firstTime=false;
repaint();
}
}
return true;
}