工程列表如下:
其中,Main是入口,它的main()中是“new TicTacToe().setVisible(true)”。
TicTacToe.java的代码如下:
package game;
import java.awt.event.*;
import java.awt.*;
import java.util.*;
import javax.swing.*;
/**
* 主窗体
* @author Administrator
*
*/
public class TicTacToe implements ActionListener,WindowListener {
Random random = new Random();//随机对象
JFrame frame = new JFrame();//窗体
JPanel titlePanel = new JPanel();//标题
JPanel gamePanel = new JPanel();//游戏域
JLabel textField = new JLabel();//标题签
JButton[] buttons = new JButton[9];//游戏区域的9个按钮
boolean player1_turn;//双方玩家的‘轮到’布尔值
boolean running = true;//在运行吗?
/**
* 构造
*/
public TicTacToe() {
launchFrame();
setTitleOfGame();
launchGamePanel();
firstTurn();
}
/**
* 初始窗体
*/
public void launchFrame() {
frame.addWindowListener(this);
frame.setSize(500,500);
frame.setLocationRelativeTo(null);
frame.setResizable(false);
frame.setTitle("井字棋游戏");
frame.getContentPane().setBackground(new Color(50,50,50));
frame.setLayout(new BorderLayout());
frame.setVisible(true);
try {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
} catch(Exception e) {
e.printStackTrace();
}
}
/**
* 设置游戏面板
*/
public void launchGamePanel() {
//设定游戏面板的布局
gamePanel.setLayout(new GridLayout(3,3));
gamePanel.setBackground(new Color(150,150,150));
//给buttons添加按钮
for ( int j = 0 ; j < buttons.length ; j++ ) {
buttons[j] = new JButton();
gamePanel.add(buttons[j]);
buttons[j].setFont(new Font("Sans Serif",Font.ITALIC,120));