import java.awt.*;import javax.swing.*;import java.awt.event.*;//建立一个大框架用来放置棋盘面板class Game extends JFrame{
int Max;//定义的棋盘大小为Max × Max的正方形 boolean ChessCheck = false;//定义一个变量,用来设置棋子是否能下在所在位置 boolean IamFirst = true;//定义一个变量,用来判断轮到谁下棋,黑棋为true白棋为false JPanel mainPanel;//定义主面板 Object[] options ={ "确定" };//警告框按钮 String msg;//警告框信息 public Game() { super("黑白棋(二人对战)");//窗口标题 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//默认窗口关闭按钮 setLocation(200, 200); //设置组件位置X,Y坐标 Image frame_icon = Toolkit.getDefaultToolkit().createImage(getClass().getResource("image\\bw.jpg"));//定义图标文件 setIconImage(frame_icon);//设置窗口图标 setVisible(true); mainPanel = new JPanel(); getContentPane().add(mainPanel); }}
//起始设置窗口//该窗口包含2个Label显示,其中一个为作者信息显示//另一个为输入提示,文本框用来输入棋盘大小//开始游戏按钮用来检查输入内容是否合法,若合法则进入游戏class Start extends JFrame{ Object[] options ={ "确定" }; String msg; JPanel S_panel; JLabel Msg; JLabel PMax; JTextField TMax; JButton GameStart; GameEvent bEGame; BorderLayout SLayout;
public Start() { super("黑白棋(二人对战)选择难度!"); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setLocation(200, 200); //设置组件位置X,Y坐标 setSize(400, 100); S_panel=new JPanel() ; Msg = new JLabel("程序制作:杜世忠 Email:dushizhong@gmail"); PMax = new JLabel("选择方格。建议选择16以内,即16×16以下。必须为偶数。"); TMax = new JTextField("10"); GameStart=new JButton("开始游戏") ; bEGame = new GameEvent(); GameStart.addActionListener(bEGame); SLayout=new BorderLayout(2,2) ; getContentPane().add(S_panel); S_panel.setLayout(SLayout); S_panel.add("North",Msg); S_panel.add("West",PMax ); S_panel.add("Center", TMax); S_panel.add("South", GameStart); setVisible(true); setResizable(false); System.out.println("面板加载完成"); } //事件监听类,处理按钮事件 class GameEvent implements ActionListener { public void actionPerformed(ActionEvent Ge) { System.out.println("进入监听"); Object Gobj = Ge.getSource(); if (Gobj == GameStart) { System.out.println("开始处理"); try{ //将输入的文本转换为int型,若输入不是数字则抛出异常 int num= Integer.parseInt(TMax.getText()); if ((num % 2) == 0)//判断是否是偶数 { if (num < 8)//判断输入是否大于等于8 { PMax.setText("你输入了非法字符!必须输入大于等于8的偶数!"); //警告窗口 msg = new String("你输入了非法字符!必须输入大于等于8的偶数!"); JOptionPane.showOptionDialog(null, msg, "输入错
误!", JOptionPane.DEFAULT_OPTION, JOptionPane.WARNING_MESSAGE, null, options, options[0]); } else { //输入符合要求进入游戏 System.out.println("正在进入游戏!"); GameStart.setText(" 正 在 游 戏 中 "); GameStart.setEnabled(false); new Chess_panel(num); } }
else //如果输入了奇数,提示并返回要求重新输入 { System.out.println("你输入了非法字符!必须输入偶数!"); PMax.setText("你输入了非法字符!必须输入偶数!"); msg = new String("你输入了非法字符!必须输入偶数!"); JOptionPane.showOptionDialog(null, msg, "输入错误!", JOptionPane.DEFAULT_OPTION, JOptionPane.WARNING_MESSAGE, null, options, options