Java JFrame 棋盘绘制:点击选中格子颜色切换
以下是使用 JFrame 绘制一个 5x5 大小的棋盘,并实现点击鼠标选中格子的 Java 代码:\n\njava\nimport javax.swing.*;\nimport java.awt.*;\nimport java.awt.event.MouseAdapter;\nimport java.awt.event.MouseEvent;\n\npublic class ChessBoard {\n\n private JFrame frame;\n private JPanel chessPanel;\n private Color[][] gridColors;\n\n public ChessBoard() {\n frame = new JFrame("Chess Board");\n frame.setSize(400, 400);\n frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);\n\n chessPanel = new JPanel(new GridLayout(5, 5));\n gridColors = new Color[5][5];\n\n // 初始化所有格子为黄色\n for (int i = 0; i < 5; i++) {\n for (int j = 0; j < 5; j++) {\n gridColors[i][j] = Color.YELLOW;\n }\n }\n\n // 绘制棋盘\n for (int i = 0; i < 5; i++) {\n for (int j = 0; j < 5; j++) {\n JPanel square = new JPanel();\n square.setBackground(gridColors[i][j]);\n square.addMouseListener(new SquareMouseListener(i, j));\n chessPanel.add(square);\n }\n }\n\n frame.add(chessPanel);\n frame.setVisible(true);\n }\n\n private class SquareMouseListener extends MouseAdapter {\n private int x;\n private int y;\n\n public SquareMouseListener(int x, int y) {\n this.x = x;\n this.y = y;\n }\n\n @Override\n public void mouseClicked(MouseEvent e) {\n JPanel square = (JPanel) e.getSource();\n if (gridColors[x][y] == Color.YELLOW) {\n square.setBackground(Color.RED);\n gridColors[x][y] = Color.RED;\n } else {\n square.setBackground(Color.YELLOW);\n gridColors[x][y] = Color.YELLOW;\n }\n }\n }\n\n public static void main(String[] args) {\n SwingUtilities.invokeLater(new Runnable() {\n @Override\n public void run() {\n new ChessBoard();\n }\n });\n }\n}\n\n\n运行上述代码,将会弹出一个窗体,里面绘制了一个 5x5 大小的棋盘。当点击格子时,格子的颜色会在黄色和红色之间切换。
原文地址: https://www.cveoy.top/t/topic/pcEA 著作权归作者所有。请勿转载和采集!