Отрисовка шахмат + реагирование на клики мыши - Java

Узнай цену своей работы

Формулировка задачи:

Добрый день, делаю шахматы, у меня задача - отрисовать шахматную доску с фигурами + позволить пользователю двигать фигуры, с выделением выбранной фигуры. Подскажите, пожалуйста, каким образом можно это сделать. Желательно с легким примерчиком)) Пробовал вывести это в TableView, но не понял как туда вывести доску...

Решение задачи: «Отрисовка шахмат + реагирование на клики мыши»

textual
Листинг программы
  1. package chessdemo;
  2.  
  3. import java.awt.BorderLayout;
  4. import java.awt.Color;
  5. import java.awt.Dimension;
  6. import java.awt.GridLayout;
  7. import javax.swing.JFrame;
  8. import javax.swing.JLayeredPane;
  9. import javax.swing.JPanel;
  10.  
  11. public class ChessDemo extends JFrame {
  12.    
  13.     JLayeredPane layeredPane;
  14.     JPanel chessBoard;
  15.  
  16.     public ChessDemo() {
  17.         Dimension boardSize = new Dimension(600, 600);
  18.         layeredPane = new JLayeredPane();
  19.         getContentPane().add(layeredPane);
  20.         layeredPane.setPreferredSize(boardSize);
  21.        
  22.         chessBoard = new JPanel();
  23.         layeredPane.add(chessBoard, JLayeredPane.DEFAULT_LAYER);
  24.         chessBoard.setLayout(new GridLayout(8, 8));
  25.         chessBoard.setPreferredSize(boardSize);
  26.         chessBoard.setBounds(0, 0, boardSize.width, boardSize.height);
  27.        
  28.         for(int i = 0; i < 64; i++){
  29.             JPanel square = new JPanel(new BorderLayout());
  30.             chessBoard.add(square);
  31.            
  32.             int row = (i/8) % 2;
  33.             if(row == 0){
  34.                 square.setBackground(i%2 == 0 ? Color.BLACK : Color.WHITE);
  35.             } else{
  36.                 square.setBackground(i%2 == 0 ? Color.WHITE : Color.BLACK);
  37.             }
  38.         }
  39.     }
  40.    
  41.  
  42.     public static void main(String[] args) {
  43.         JFrame frame = new ChessDemo();
  44.         frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  45.         frame.pack();
  46.         frame.setVisible(true);
  47.     }
  48.    
  49. }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 3.5 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут