一些麻烦的paintComponent()(Some trouble with paintCompo

2019-10-31 18:18发布

继先前的消息 ,我有一个问题(什么是新手)。

我有一个类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的某一部分(显示,如果代码运行良好,我会马上看到它)

当我启动它:

  1. 地图显示,太好了。
  2. 我写“etablir”,它launchs方法etablir()它打印“Etablir?” 在System.out
  3. 笑设置为true
  4. ... 就这样。 没有重绘,无重的paintComponent,没有地图的更新。

因此,通过relauching重绘paintComponent(Graphics g)有一个简单的方法是什么? 我敢肯定,我错过了一些简单。

文章来源: Some trouble with paintComponent()