package jiemian; // 定义当前代码所在的包名为jiemian import javax.swing.*; // 导入Swing组件,用于创建图形用户界面 import java.awt.*; // 导入AWT组件,用于处理图形界面 import java.awt.event.MouseAdapter; // 导入用于处理鼠标事件的适配器 import java.awt.event.MouseEvent; // 导入鼠标事件类 // 定义GoBangGame类,继承自JFrame,用于创建五子棋游戏界面 public class GoBangGame extends JFrame { // 定义棋盘的大小常量 private static final int BOARD_SIZE = 15; // 存放按钮的二维数组,每个按钮代表棋盘上的一个格子 private JButton[][] buttons; // 存放棋盘状态的二维数组,0表示空,1表示玩家1,2表示玩家2 private int[][] board; // 当前玩家,1表示玩家1,2表示玩家2 private int currentPlayer = 1; // 构造函数,用于初始化游戏界面 public GoBangGame() { setTitle("五子棋"); // 设置窗口标题 setSize(400, 400); // 设置窗口大小 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 设置窗口关闭操作 setLayout(new GridLayout(BOARD_SIZE, BOARD_SIZE)); // 使用网格布局填充窗口 // 初始化按钮数组和棋盘状态数组 buttons = new JButton[BOARD_SIZE][BOARD_SIZE]; board = new int[BOARD_SIZE][BOARD_SIZE]; // 循环创建棋盘上的按钮 for (int i = 0; i < BOARD_SIZE; i++) { for (int j = 0; j < BOARD_SIZE; j++) { // 创建一个新的按钮并设置背景色 JButton button = new JButton(); button.setBackground(Color.LIGHT_GRAY); // 为按钮添加鼠标点击事件监听 button.addMouseListener(new MouseAdapter() { @Override public void mouseClicked(MouseEvent e) { // 检查点击的格子是否为空(值为0) if (board[e.getY()][e.getX()] == 0) { // 在该位置落子,并设置当前玩家 board[e.getY()][e.getX()] = currentPlayer; // 根据当前玩家设置按钮背景色 int player = currentPlayer; buttons[e.getY()][e.getX()].setBackground(player == 1 ? Color.BLACK : Color.RED); // 切换到下一个玩家 currentPlayer = (currentPlayer % 2) + 1; } } }); // 将创建的按钮添加到按钮数组中 buttons[i][j] = button; // 将按钮添加到窗口中 add(button); } } } // 主函数,程序的入口点 public static void main(String[] args) { // 使用SwingUtilities.invokeLater确保线程安全 SwingUtilities.invokeLater(() -> { // 创建游戏窗口实例 GoBangGame game = new GoBangGame(); // 设置窗口可见 game.setVisible(true); }); } }
用java,编写五子棋的下棋界面(只有界面)
最新推荐文章于 2024-06-29 15:26:18 发布
本文详细介绍了使用JavaSwing和AWT库开发的五子棋游戏,包括GoBangGame类的构造、按钮处理和棋盘状态管理。通过鼠标事件实现落子和切换玩家功能。
摘要由CSDN通过智能技术生成