Отрисовка шахмат + реагирование на клики мыши - 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);
}
}