https://pastein.ru/t/c0

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


package kosynka;

import javax.swing.JButton;
import javax.swing.JPanel;
import javax.swing.Timer;

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

public class Panel extends JPanel {
	public Image bgImage;
	private Timer timerDraw; // tmDraw;
	private JButton btnExit, btnNewGame;
	private Logic gameLogic;
	
	public class MyMouse1 implements MouseListener {

		@Override
		public void mouseClicked(MouseEvent e) {
			// TODO Auto-generated method stub
			
		}

		@Override
		public void mousePressed(MouseEvent e) {
			// TODO Auto-generated method stub
			if (gameLogic.gameEnd == false) {
				//Получем координаты курсора
				int mX = e.getX();
				int mY = e.getY();
				
				//Если нажата левая клавиша мыши один раз 
				if ( (e.getButton() == 1) && (e.getClickCount() == 1) ) {
					//Вызываем метод из класса Logic
					gameLogic.mousePressed(mX, mY);
				}
				
				else if ( (e.getButton() == 1) && (e.getClickCount() == 2) ) {
					//Вызываем метод из класса Logic
					gameLogic.mousePressed(mX, mY);
				}
			}
		}

		@Override
		public void mouseReleased(MouseEvent e) {
			// TODO Auto-generated method stub
			//Если еще не конец игры 
			if(gameLogic.gameEnd == false) {
				//Получаем коодинаты
				int mX = e.getX();
				int mY = e.getY();
				
				//Если нажата левая клавиша мыши
				if(e.getButton() == 1) {
					//Вызываем метод из класса Logic
					gameLogic.mouseReleased(mX, mY);
				}
			}
		}

		@Override
		public void mouseEntered(MouseEvent e) {
			// TODO Auto-generated method stub
			
		}

		@Override
		public void mouseExited(MouseEvent e) {
			// TODO Auto-generated method stub
			
		}
		
	}
	
	public class MyMouse2 implements MouseMotionListener {

		@Override
		public void mouseDragged(MouseEvent e) {
			// TODO Auto-generated method stub
			if(gameLogic.gameEnd == false) {
				//получаем коодинаты
				int mX = e.getX();
				int mY = e.getY();
				
				//вызываем метод из класса Logic
				gameLogic.mouseDragged(mX, mY);
			}
		}

		@Override
		public void mouseMoved(MouseEvent e) {
			// TODO Auto-generated method stub
			
		}
		
	}
	
	public Panel() {
		addMouseListener(new MyMouse1());
		addMouseMotionListener(new MyMouse2());
		//ЧСоздаем объект класса Logic
		gameLogic = new Logic();
		
		try {
			bgImage = ImageIO.read(new File("C:\\cards\\table-background.png"));
		} catch (IOException e) {
			// TODO Auto-generated catch block
			
		}
		
		setLayout(null);
		btnNewGame = new JButton();
		btnNewGame.setText("Новая игра");
		btnNewGame.setForeground(Color.BLUE);
		btnNewGame.setFont(new Font("serif",0,30));
		btnNewGame.setBounds(130,450,200,80);
		btnNewGame.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				gameLogic.start();
			}
		});
		add(btnNewGame);
		
		btnExit = new JButton();
		btnExit.setText("Выход");
		btnExit.setForeground(Color.RED);
		btnExit.setFont(new Font("serif",0,30));
		btnExit.setBounds(530,450,200,80);
		btnExit.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				System.exit(0);
			}
		});
		add(btnExit);
		
		timerDraw = new Timer(20, new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				repaint();
			}
		});
		timerDraw.start();
	}
	
	
	
	public void paintComponent(Graphics gr) {
		gr.drawImage(bgImage, 0,0,1000,700, null);
	}
}