请教各位,我使用paintComponet()方法来实hannoi塔问题(可以自动演示塔的搬运过程),使用这个方法来绘制塔和塔点,塔高及塔点的个数通过一个参数(变量)传递给这个方法所在的类,paintComponent()方法再根据传进来的参数的值绘制塔高和塔点,一开始运行正常,若参数值改变,paintComponent()方法却无法正常跟着改变,即使用改变后的参数值来绘制,请问这是为什么?该如何解决?
调试欢乐多
public void paintComponent(Graphics g)
{
super.paintComponent(g);
//画出塔形(point[0]为第0个塔点,getx,gety得到塔点的坐标)
g.setColor(Color.blue);
g.fillRoundRect(point[0].getX()-4,point[0].getY()-27,8,27*dNumber,2,3);
g.fillRoundRect(point[dNumber].getX()-4,point[dNumber].getY()-27,8,27*dNumber,2,3);
g.fillRoundRect(point[2*dNumber].getX()-4,point[2*dNumber].getY()-27,8,27*dNumber,2,3);
//画出塔的基座
int leftx=point[dNumber-1].getX()-width/2;
int lefty=point[dNumber-1].getY();
int w=(point[3*dNumber-1].getX()+width/2)-(point[dNumber-1].getX()-width/2);
int h=height/2;
g.setColor(Color.red);
g.fillRect(leftx,lefty,w,h);
g.setColor(Color.pink);
int size=4;
//画出塔点
for(int i=0;i<3*dNumber;i++)
{
g.fillOval(point[i].getX()-size/2,point[i].getY()-size/2,size,size);
}
g.setColor(Color.blue);
g.drawString(""+towerName[0]+"塔",point[dNumber-1].getX()-10,point[dNumber-1].getY()+30);
g.drawString(""+towerName[1]+"塔",point[2*dNumber-1].getX()-10,point[dNumber-1].getY()+30);
g.drawString(""+towerName[2]+"塔",point[3*dNumber-1].getX()-10,point[dNumber-1].getY()+30);
}
请各位帮我看看吧