一,界面的实现
首要,咱们还是来实现一个基本的界面,由于咱们必须一起棋盘的区域还有一起功能区域,因此咱们除了JFrame还必须用到JPanel和BorderLayout边框布局方式。代码如下:
public class Gobong extends JPanel implements Gobonginte{
public static void main(String[] args){
Gobong gb=new Gobong();
gb.initUI();
}
public void initUI(){
JFrame frame=new JFrame("五子棋");
frame.setSize(800, 680);
frame.setDefaultCloseoperation(3);
frame.setLocationRelativeTo(null);
JPanel jp=new JPanel();
BorderLayout bl=new BorderLayout();//设置JFrame的布局方式
frame.setLayout(bl);
GobongListener gl=new GobongListener(this,jb);//实例化事件处理类对象
frame.add(this,BorderLayout.CENTER);//添加中间面板
jp.setBac公斤round(Color.DARK_GRAY);
jp.setPreferredSize(new Dimension(150,0));
frame.add(jp,BorderLayout.EAST);//添加东边面板
frame.setVisible(true);
gl.setG(getGraphics());
}
而后,咱们必须画出一个棋盘,由于后面咱们其他类亦必须,初始坐标,棋子体积等有些数据,为了便于修改和赋值,咱们定义一个接口:
public interface Gobonginte {
public static final int x0=30,y0=30,SIZE=30,row=20,column=20;
public static final int[][] chesses=new int[row][column];
}
为了方便咱们后面进行重绘,咱们这儿在继承JPanel类之后重写paint办法:
public void paint(Graphics g){
super.paint(g);
this.draw(g);
if(chesses!=null){
this.drawqizi(g);
}
}
画棋盘的办法:
public void draw(Graphics g){
//画棋盘
for(int i=0;i<row;i++){
g.setColor(Color.black);
g.drawLine(x0,y0+i*SIZE,x0+SIZE*(row-1),y0+i*SIZE);//画横线
g.drawLine(x0+i*SIZE,y0 ,x0+i*SIZE,y0+SIZE*(column-1));//画横线
}
}
二,棋盘落子
咱们此刻基本的界面有了,此刻必须的是将在棋盘上画棋子,并且是画在交叉点上。
此时为了得到点时的坐标点,咱们必须添加监听器(MouseListener,ActionListener)这儿我为了方便,选取继承了MouseAdapter类:
public class GobongListener extends MouseAdapter implements ActionListener,Gobonginte{
public GobongListener(JPanel j,JComboBox<String> jb){
this.jpanel=j;
this.jb=jb;
}
public void mouseReleased(Mouse
|