https://pastein.ru/t/jE

  скопируйте уникальную ссылку для отправки


import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import javax.imageio.*;
import java.io.*;

public class Pole extends JPanel {
  private Image santa;
  private Image fon;
  public int x = 350;
  private Podarok[] presents; //Массив подарков 
  private int lvl;
  
//Здесь создается конструктор класса Pole
  public Pole(int lvl) {
	this.lvl = lvl;
	presents = new Podarok[7];
	
	for(int i=0; i<7; i++) {
		try {
			presents[i] = new Podarok(ImageIO.read(new File("C:\\gifts\\p"+i+".png")).getScaledInstance(100, 100, Image.SCALE_DEFAULT));
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
	
	
    try {
      santa = ImageIO.read(new File("C:\\gifts\\santa.png"));
      fon = ImageIO.read(new File("C:\\gifts\\bg.jpg"));
    }
    catch (IOException ex) {
      System.out.println("Изображение не найдено");
    }


    //таймер который создавать подарки на игровом поле
    Timer timerUpdate = new Timer(3000, new ActionListener() {
        public void actionPerformed(ActionEvent a) {
          updateStart();
        }
      });
    timerUpdate.start();
    
    //тАймер для отрисовки новоого кадра
    Timer timerDraw = new Timer(16, new ActionListener() {
      public void actionPerformed(ActionEvent a) {
        repaint();
      }
    });
    timerDraw.start();
  }

  //Метод для проверки и добавления новых подарков
  private void updateStart() {
	  int kol = 0; //переменная дл подсчета подарков на игровом
	  for(int i = 0; i<7; i++) {
		  if(presents[i].act == false) { //Если подарок не на игровом поле
			  if(kol < lvl) {
				  presents[i].start();
				  break;
			  }
		  }
		  else kol++;
	  }
  }
  
  public void paintComponent(Graphics gr) {
    super.paintComponent(gr);
    gr.drawImage(fon, 0, 0, null);
    gr.drawImage(santa, x, 465,100,100, null);
    
    for(int i =0; i<7; i++) {
    	presents[i].draw(gr);
    }
  }
}