Отрисовка шахмат + реагирование на клики мыши - 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);
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д