用java在界面中画一个15*15五子棋棋盘鼠标点击的地方画一个黑色的圈
时间: 2024-03-06 19:48:51 浏览: 51
好的,下面是Java代码实现:
```java
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class GobangBoard extends JFrame {
private int ROWS = 15;//行数
private int COLS = 15;//列数
private int GRID_SIZE = 30;//格子大小
private int MARGIN = 30;//边距
private int x, y;//鼠标点击的坐标
public GobangBoard() {
setTitle("五子棋");
setSize(ROWS * GRID_SIZE + 2 * MARGIN, COLS * GRID_SIZE + 2 * MARGIN);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null);
setResizable(false);
addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
x = (e.getX() - MARGIN + GRID_SIZE / 2) / GRID_SIZE;
y = (e.getY() - MARGIN + GRID_SIZE / 2) / GRID_SIZE;
repaint();
}
});
setVisible(true);
}
public void paint(Graphics g) {
super.paint(g);
for (int i = 0; i < ROWS; i++) {
g.drawLine(MARGIN, MARGIN + i * GRID_SIZE, MARGIN + (COLS - 1) * GRID_SIZE, MARGIN + i * GRID_SIZE);
}
for (int i = 0; i < COLS; i++) {
g.drawLine(MARGIN + i * GRID_SIZE, MARGIN, MARGIN + i * GRID_SIZE, MARGIN + (ROWS - 1) * GRID_SIZE);
}
if (x >= 0 && x < ROWS && y >= 0 && y < COLS) {
g.setColor(Color.BLACK);
g.fillOval(MARGIN + x * GRID_SIZE - GRID_SIZE / 2, MARGIN + y * GRID_SIZE - GRID_SIZE / 2, GRID_SIZE, GRID_SIZE);
}
}
public static void main(String[] args) {
new GobangBoard();
}
}
```
运行后,界面上会显示一个15*15的五子棋棋盘。当鼠标点击棋盘上的某个位置时,会在该位置画一个黑色的圆圈。