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