让我们来思考一个问题:如何用Java来开发出一个五子棋项目?首先,没有界面其它的也就无从谈起,这里需要用到Java的SWING与AWT组件;有了五子棋界面,我们要能在界面上画出黑白棋子;最后,能够对输赢进行判断,这里需要用到事件监听。实现了以上三点,一个最基本的五子棋项目就做好了。
一.五子棋界面
最简单的界面分为两部分:棋盘与操作按钮,如果有需要,也可以添加其他部分。首先写出棋盘界面类GobangFrame继承JPanel,设置好界面大小、标题、位置等属性,代码如下:
JFrame frame = new JFrame();
frame.setTitle("五子棋");
frame.setSize(new Dimension(1240, 1010));
frame.setLocationRelativeTo(null);
frame.setResizable(false);
frame.setDefaultCloseOperation(3);
frame.setVisible(true);
属性写完之后来设置它的布局,把棋盘放在中间,按钮放在界面东边:
// 东边面板JPanel eastPanel = new JPanel();
eastPanel.setBackground(Color.white);
String[] array = { "单机对战", "人机对战", "联机对战", "悔棋", "重新开始" };
JLabel label = new JLabel();
label.setPreferredSize(new Dimension(200, 200));
eastPanel.add(label);
// 添加按钮for (int i = 0; i < array.length; i++) {
JButton button = new JButton(array[i]);
button.setPreferredSize(new Dimension(200, 100));
button.setFont(new Font("", Font.BOLD, 30));
eastPanel.add(button);
}
eastPanel.setPreferredSize(new Dimension(250, 750));
frame.add(eastPanel, BorderLayout.EAST);
// 中间面板this.setBackground(new Color(100, 100, 100));
frame.add(this, BorderLayout.CENTER);
画布和按钮部分已经布置好了,但是我们的棋盘现在还没有画出来。别急,我们先来定义一个棋盘类Board,并定义好棋盘的属性:每个格子的边长、左上顶点的坐标,并写出循环画出棋盘的方法:
public void draw(Graphics g){
for(int i=0;i
g.drawLine(x, y+size*i, x+size*(row-1), y+size*i);
}
for(int i=0;i
g.drawLine(x+size*i, y, x+size*i, y+size*(column-1));
}
}
接着我们重写GobangFrame的paint(Graphics g)方法,实例化Board对象并将draw(Graphics g)方法写入paint(Graphics g)即可。点击运行之后,就得到了简易的五子棋界面。
如果想要使五子棋界面更加美观,我们可以从网上下载一些精美的棋盘和棋子图片,使用辅助类ImageIcon封装后在界面上画出。
二&#x