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

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

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

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

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

textual
Листинг программы
package chessdemo;
 
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.GridLayout;
import javax.swing.JFrame;
import javax.swing.JLayeredPane;
import javax.swing.JPanel;
 
public class ChessDemo extends JFrame {
    
    JLayeredPane layeredPane;
    JPanel chessBoard;
 
    public ChessDemo() {
        Dimension boardSize = new Dimension(600, 600);
        layeredPane = new JLayeredPane();
        getContentPane().add(layeredPane);
        layeredPane.setPreferredSize(boardSize);
        
        chessBoard = new JPanel();
        layeredPane.add(chessBoard, JLayeredPane.DEFAULT_LAYER);
        chessBoard.setLayout(new GridLayout(8, 8));
        chessBoard.setPreferredSize(boardSize);
        chessBoard.setBounds(0, 0, boardSize.width, boardSize.height);
        
        for(int i = 0; i < 64; i++){
            JPanel square = new JPanel(new BorderLayout());
            chessBoard.add(square);
            
            int row = (i/8) % 2;
            if(row == 0){
                square.setBackground(i%2 == 0 ? Color.BLACK : Color.WHITE);
            } else{
                square.setBackground(i%2 == 0 ? Color.WHITE : Color.BLACK);
            }
        }
    }
    
 
    public static void main(String[] args) {
        JFrame frame = new ChessDemo();
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.pack();
        frame.setVisible(true);
    }
    
}

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


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

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

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