@Override
  public void initResources() {

    final int MARGIN = 30;
    int x = container.getWidth();
    int y = container.getHeight();
    Image tmp = ResourceManager.getImage("butRetour");

    int larg = tmp.getWidth();
    int haut = tmp.getHeight();
    int yBut = y - haut - MARGIN;

    shapeListeServers = new Rectangle(MARGIN, 50, x / 2 - MARGIN - 10, yBut - 50);

    listeServers =
        new ListeDeroulante(
            container,
            ResourceManager.getImage("transparent"),
            (int) shapeListeServers.getX() + 5,
            (int) shapeListeServers.getY() + 5);
    listeServers.setScrolled(true);
    listeServers.setMaxElementsToDraw((int) shapeListeServers.getHeight() / 20);

    butRetour =
        new MouseOverArea(
            container, ResourceManager.getImage("butRetour"), MARGIN, yBut, larg, haut);
    butRetour.setMouseOverImage(ResourceManager.getImage("butRetourOver"));

    butCreerServer =
        new MouseOverArea(container, tmp, tmp.getWidth() + MARGIN * 2, yBut, larg, haut);
    butCreerServer.setMouseOverImage(ResourceManager.getImage("MenuJouerOver"));

    timerRefreshServers = new Timer(7000);
  }
  @Override
  public void render(GameContainer container, StateBasedGame game, Graphics g)
      throws SlickException {
    int nb = 0;
    if (server != null) {
      nb = server.getPartie().size();
      g.drawString("Server : ON", 5, 5);
    } else g.drawString("Server : OFF", 5, 5);
    g.drawString(
        "Listes des parties ouvertes : " + nb,
        shapeListeServers.getX()
            + shapeListeServers.getWidth() / 2
            - container.getDefaultFont().getWidth("Listes des parties ouvertes :" + nb) / 2,
        shapeListeServers.getY()
            - container.getDefaultFont().getHeight("Listes des parties ouvertes :" + nb)
            - 2);

    g.setDrawMode(Graphics.MODE_COLOR_MULTIPLY);
    g.setColor(Color.gray);
    g.fill(shapeListeServers);
    g.setDrawMode(Graphics.MODE_NORMAL);

    g.setColor(Color.white);
    g.draw(shapeListeServers);

    listeServers.renderString(container, g);

    butRetour.render(container, g);
    butCreerServer.render(container, g);

    super.render(container, game, g);
  }
 private void mettreAJourListePartie() {
   listeServers.clearList();
   for (Partie v : server.getPartie())
     if (v != null) {
       String type = "Salon";
       if (v instanceof Jeu) type = "jeu";
       listeServers.addElement(
           new ElementString(
               container,
               ResourceManager.getImage("transparent")
                   .getScaledCopy(10, container.getDefaultFont().getHeight("1") + 2),
               0,
               0,
               "Id: "
                   + v.getId()
                   + " Nb joueurs: "
                   + v.getListeDesJoueursDansLaPartie().size()
                   + " instance: "
                   + type));
     }
 }
  @Override
  public void update(GameContainer container, StateBasedGame sbGame, int delta)
      throws SlickException {
    super.update(container, sbGame, delta);

    if (timerRefreshServers.isTimeComplete()) {
      if (server != null) {
        // if(listeServers.size() != server.getPartie().size()) -> enlever car c
        // vite fait et je veux aussi verifier si le nb de joueur est tjr bon sauf que je peux pas
        // acceder facilement a ce nb contenu dans la liste deroulante vu que c dans un String
        mettreAJourListePartie(); // mode bourrin, on vide la liste et on refait

      } else listeServers.clearList();
      timerRefreshServers.resetTime();
    } else timerRefreshServers.update(delta);
  }