首先,鼠标监听需要写在鼠标监听的那个类里面,然后,还需要把画笔也放进去,当点鼠标,则画一个棋子,需要判断轮到哪个棋子了,还需要判断,棋子放那合法不合法,也就是说之前那个位置有没有棋子
import java.awt.event.ActionListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.ActionEvent;
import java.awt.Graphics;
import java.awt.Color;
public class FrameListener implements BoardDraw,MouseListener{
public Board bd;
public int turn_flag=0; //用来标记到黑棋还是白棋走
public void setGraphs(Board bd){
this.bd=bd;
}
@Override
public void mouseClicked(MouseEvent e) {
//获得鼠标位置
int X=e.getX();
int Y=e.getY();
//放到交点处
int countx = (X/size)*size+x;
int county =(Y/size)*size +y;
//计算是第几个格子的
int cl = (countx-x)/size;
int row = (county-y)/size;
//画笔画在bd画布上
Graphics gg = bd.getGraphics();
//判断落子位置有没有棋子
if (bd.weiZhi[row][cl]!=0){
System.out.println("这已经有棋子了");
}
else {
if (turn_flag==0){
gg.setColor(Color.BLACK);
gg.fillOval(row,cl,size,size);
this.bd.weiZhi[row][cl]=1;
turn_flag=1;
}
else {
gg.setColor(Color.WHITE);
gg.fillOval(row,cl,size,size);
this.bd.weiZhi[row][cl]=1;
turn_flag=0;
}
}
}
@Override
public void mousePressed(MouseEvent e) {
}
@Override
public void mouseReleased(MouseEvent e) {
}
@Override
public void mouseEntered(MouseEvent e) {
}
@Override
public void mouseExited(MouseEvent e) {
}
}
这就可以了,完整的程序放在下一篇