https://pastein.ru/t/aZ
скопируйте уникальную ссылку для отправки
Загрузка данных
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.io.*;
import javax.imageio.*;
public class Panel extends JPanel {
//таймер для отрисовки игрового поля
private Timer tmDraw;
//Две кнопки: Новая игра и Выход
private JButton btn1, btn2;
//Изображение фона
private Image bg;
//Переменая для реализации самой игры
private Game newGame;
public class MyMouse1 implements MouseListener {
@Override
public void mouseClicked(MouseEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void mouseEntered(MouseEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void mouseExited(MouseEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void mousePressed(MouseEvent arg0) {
// TODO Auto-generated method stub
//Если еще не конец игры
if(newGame.endGame == false) {
//Получаем координаты курсора мыши
int mX = arg0.getX();
int mY = arg0.getY();
//Если нажата левая кнопка мыши один раз
if ((arg0.getButton() == 1) && (arg0.getClickCount() == 1)) {
//Вызываем метод из класса Game
newGame.mousePressed(mX, mY);
}
//Если двойной щелчок левой кнопкой мыши
else if((arg0.getButton() == 1) && (arg0.getClickCount() == 2)) {
//вЫЗЫВАЕМ МЕТОД ИЗ КЛАССА GAME
newGame.mouseDoublePressed(mX, mY);
}
}
}
@Override
public void mouseReleased(MouseEvent arg0) {
// TODO Auto-generated method stub
//Если еще не конец игры
if(newGame.endGame == false) {
//Получаем координаты курсора мыши
int mX = arg0.getX();
int mY = arg0.getY();
//Если нажата левая кнопка мыши
if(arg0.getButton() == 1) {
//Вызываем мето диз калсса game
newGame.mouseReleased(mX, mY);
}
}
}
}
public class MyMouse2 implements MouseMotionListener {
//При перетаскивании или захвате мышью
public void mouseDragged(MouseEvent arg0) {
// TODO Auto-generated method stub
//Если еще не конец игры
if(newGame.endGame == false) {
//Получаем координаты курсора мыши
int mX = arg0.getX();
int mY = arg0.getY();
//Вызываем мето диз класса Game
newGame.mouseDragged(mX, mY);
}
}
@Override
public void mouseMoved(MouseEvent arg0) {
// TODO Auto-generated method stub
}
}
public Panel() {
//Подключаем обработчик событий для мыши
addMouseListener(new MyMouse1());
addMouseMotionListener(new MyMouse2());
//Создаем объект на основании класса Game
newGame = new Game();
//Загружаем фоновое изображение
try {
bg = ImageIO.read(new File("/home/atzutz/Desktop/bg.jpg"));
}
catch(Exception ex) {}
//Включаем возможность произвольного расположения элементов формы
setLayout(null);
//Создаем первую кнопку новая mигра
btn1 = new JButton();
btn1.setForeground(Color.BLUE);
btn1.setFont(new Font("serif", 0, 20));
btn1.setText("Новая игра");
btn1.setBounds(820, 50, 150, 50);
btn1.addActionListener(new ActionListener() {
//При нажатии на кнопку
public void actionPerformed(ActionEvent arg0) {
newGame.start();
}
});
add(btn1);
//Создаем первую кнопку новая игра
btn2 = new JButton();
btn2.setForeground(Color.BLUE);
btn2.setFont(new Font("serif", 0, 20));
btn2.setText("Exit");
btn2.setBounds(820, 150, 150, 50);
btn2.addActionListener(new ActionListener() {
//При нажатии на кнопку
public void actionPerformed(ActionEvent arg0) {
System.exit(0);
}
});
add(btn2);
tmDraw = new Timer(20, new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
//Перерисовка игрового поля
repaint();
}
});
tmDraw.start();
}
public void paintComponent(Graphics gr) {
//очищение игрового поля
super.paintComponents(gr);
//Выведение ффонового изображения
gr.drawImage(bg, 0, 0, 1000, 700, null);
//Рисование верних белых шести прямоугольников
gr.setColor(Color.WHITE);
for(int i=0; i<7; i++) {
if(i!=2) gr.drawRect(30+i*110, 15, 72, 97);
}
for(int i=0; i<7; i++) {
gr.drawRect(30+i*110, 130, 72, 97);
}
newGame.drawKoloda(gr);
}
}