private void showInformationAboutAnimal() {
   LifeForm animal;
   if ((animal = this.findAnimal()) != null) {
     if (info != null) {
       info.infoAnimal.setBigCursor(false);
       info.setVisible(false);
     }
     this.info = new InformationAboutAnimal(animal);
     info.addWindowListener(
         new WindowAdapter() {
           public void windowClosing(WindowEvent e) {
             info.infoAnimal.setBigCursor(false);
             info.setVisible(false);
           }
         });
     info.setVisible(true);
   }
 }
  public void paintComponent(Graphics g) { // рисуем всех животных и всю траву
    super.paintComponent(g);
    int sizeOfCell = Information.getSizeOfCell();

    g.drawImage(
        Information.getImageGround(), 0, 0, this.getSize().width, this.getSize().height, null);

    if (Information.worldCreated()) {
      for (Iterator<Grass> current = Information.getLinkedListOfGrass().iterator();
          current.hasNext(); ) { // аналогично для травы

        Grass val1 = current.next();
        if (val1.getGrassImage() == null) return;
        if (val1.getAge() > val1.getStartAge() - 20) {

          g.drawImage(
              Information.getImageVeryYoungTree(),
              val1.getXPosition() * Information.getSizeOfCell(),
              val1.getYPosition() * Information.getSizeOfCell(),
              sizeOfCell / 2,
              sizeOfCell / 2,
              null);

        } else {
          g.drawImage(
              val1.getGrassImage(),
              val1.getXPosition() * Information.getSizeOfCell(),
              val1.getYPosition() * Information.getSizeOfCell(),
              sizeOfCell,
              sizeOfCell,
              null);
        }
      }

      for (Iterator<Leo> current = Information.getLinkedListOfLeos().iterator();
          current.hasNext(); ) {
        Leo val = current.next();
        Image image;
        if ((image = val.getAnimalImage()) == null) return;

        if (val.isChild()) {

          g.drawImage(
              image, // вот здесь с помощью getAnimalImage можно в зависимости от состояния объекта
              // (гапример, он спит) ставить разные картинки
              val.getXPosition(),
              val.getYPosition(),
              sizeOfCell * (30 - val.timeOfInertion) / 30,
              sizeOfCell * (30 - val.timeOfInertion) / 30,
              null);
        } else
          g.drawImage(
              image, // вот здесь с помощью getAnimalImage можно в зависимости от состояния объекта
              // (гапример, он спит) ставить разные картинки
              val.getXPosition(),
              val.getYPosition(),
              sizeOfCell,
              sizeOfCell,
              null);

        if (val.haveBigCursor()) {
          g.drawImage(
              Information.getImageBigCursor(),
              val.getXPosition() - 25,
              val.getYPosition() - 25,
              25,
              25,
              null);
        }
      }

      for (Iterator<Herbivore> current = Information.getLinkedListOfHerbivores().iterator();
          current.hasNext(); ) {
        Herbivore val = current.next();
        Image image;
        if ((image = val.getAnimalImage()) == null) return;

        if ((val.isChild()) && (val.isAlive())) {

          g.drawImage(
              image, // вот здесь с помощью getAnimalImage можно в зависимости от состояния объекта
              // (гапример, он спит) ставить разные картинки
              val.getXPosition(),
              val.getYPosition(),
              sizeOfCell * (30 - val.timeOfInertion) / 30,
              sizeOfCell * (30 - val.timeOfInertion) / 30,
              null);
        } else
          g.drawImage(
              image, // вот здесь с помощью getAnimalImage можно в зависимости от состояния объекта
              // (гапример, он спит) ставить разные картинки
              val.getXPosition(),
              val.getYPosition(),
              sizeOfCell,
              sizeOfCell,
              null);

        if (val.haveBigCursor()) {
          g.drawImage(
              Information.getImageBigCursor(),
              val.getXPosition() - 25,
              val.getYPosition() - 25,
              25,
              25,
              null);
        }
      }

      if (isEvent) {
        this.showInformationAboutAnimal();
        isEvent = false;
      }
      if (info != null) {
        info.repaintInfo();
      }
    }
  }