写出一个java实现五子棋的界面
时间: 2024-03-26 11:35:58 浏览: 135
基于Java实现有界面的五子棋
以下是一个简单的Java Swing界面实现五子棋的示例代码:
```java
import javax.swing.*;
import java.awt.*;
public class FiveChess extends JFrame {
private JPanel boardPanel; // 棋盘面板
private JButton[][] chessBtns; // 棋子按钮
private JLabel messageLabel; // 提示信息标签
private int turn = 1; // 当前轮到的玩家,1表示黑方,2表示白方
public FiveChess() {
initComponents();
}
private void initComponents() {
// 初始化棋盘面板和提示信息标签
boardPanel = new JPanel(new GridLayout(15, 15));
messageLabel = new JLabel("黑方先行");
// 初始化棋子按钮
chessBtns = new JButton[15][15];
for (int i = 0; i < 15; i++) {
for (int j = 0; j < 15; j++) {
chessBtns[i][j] = new JButton();
chessBtns[i][j].setPreferredSize(new Dimension(30, 30));
chessBtns[i][j].addActionListener(e -> {
int row = -1, col = -1;
// 找到点击的棋子按钮的位置
for (int k = 0; k < 15; k++) {
for (int l = 0; l < 15; l++) {
if (chessBtns[k][l] == e.getSource()) {
row = k;
col = l;
break;
}
}
}
if (row >= 0 && col >= 0 && chessBtns[row][col].getText().isEmpty()) {
// 如果该位置没有棋子,则在该位置放置当前玩家的棋子
if (turn == 1) {
chessBtns[row][col].setText("●");
messageLabel.setText("轮到白方行棋");
turn = 2;
} else {
chessBtns[row][col].setText("○");
messageLabel.setText("轮到黑方行棋");
turn = 1;
}
}
});
boardPanel.add(chessBtns[i][j]);
}
}
// 添加组件到窗口
add(boardPanel, BorderLayout.CENTER);
add(messageLabel, BorderLayout.SOUTH);
// 设置窗口属性
setTitle("五子棋");
setSize(500, 500);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null);
setVisible(true);
}
public static void main(String[] args) {
new FiveChess();
}
}
```
这个示例代码中,我们使用了一个15x15的JPanel作为棋盘面板,使用JButton作为棋子按钮,通过监听按钮的点击事件来实现在棋盘上放置棋子。在放置棋子时,我们通过改变当前玩家的标志来切换黑白方,同时也会更新提示信息标签的内容。
阅读全文