继先前的消息 ,我有一个问题(什么是新手)。
我有一个类Fenetre
,包含下面的代码(和更多):
@Override
public void paintComponent(Graphics g) {
super.paintComponent(g);
if(!init)
{
afficher= new Afficher(g);
init = true;
}
g.setColor(Color.white);
g.fillRect(0, 0, 1000, 500);
if(lol)afficher.setMapOne(2,2,6);
System.out.println("paintComponent : "+lol);
afficher.checkChanges(g);
}
public void setLol(boolean n)
{
lol = n;
System.out.println("setLol : "+lol);
}
而在我的主类, GameEngine
:
public void etablir(String secondWord)
{
System.out.println("Etablir ?");
fenetre.setLol(true);
fenetre.repaint();
}
这是很简单的,但让我解释一下:
afficher.checkChanges(g);
检查图(目标是绘制的等距图),如表short[][]
并将其显示出来。
if(lol)afficher.setMapOne(2,2,6);
设置地图为灰色,而不是BROWN的某一部分(显示,如果代码运行良好,我会马上看到它)
当我启动它:
- 地图显示,太好了。
- 我写“etablir”,它launchs方法
etablir()
它打印“Etablir?” 在System.out
- 笑设置为
true
- ... 就这样。 没有重绘,无重的paintComponent,没有地图的更新。
因此,通过relauching重绘paintComponent(Graphics g)
有一个简单的方法是什么? 我敢肯定,我错过了一些简单。