五子棋游戏开发学习

  最近在重温JAVA基础,粗略看了下之前做的一些笔记和视频后,找了个书本上的小项目来实战一下,通过这个练习来熟悉JAVA编程的基本结构和一些常用知识点的回顾与学习。注:源码来自书本,并非源创。

  一.五子棋游戏功能

    1.在单击鼠标时,在相应的位置显示棋子。

    2.自动判断游戏是否结束,是否黑方或白方已经胜利。

    3.对游戏时间进行设置,判断是否超出规定的时间。

  二.主要技术

    1.Swing编程

    2.ImageIO类的使用

    3.图片的绘制.

  下面按照制作步骤分多个文章讲述制作过程:

  一.主窗体的制作:

    JFrame是创建窗体的swing类,存在于javax.swing.JFrame包中,用来创建一个图形界面的原始窗口,并设置其大小和位置等属性。本应用利用JFrame生成一个主窗体并将其封装成一个类。

  效果如下图:

  

  该窗体主要设置了窗体的标题,设定了宽度和高度,固定其大小并不可改变,当窗体关闭时候关闭后台程序,计算当前屏幕分辨率并居中显示。

  二.对话框的显示

    在Swing编程中提供了JOptionPane类来实现类似Windows平台下的MessageBox的功能。利用JOptionPane类中的各个静态方法来生成各种标准对话框,实现显示信息、提出问题、警告和用户输入参数等功能。

    ConfirmDialog:确认对话框,提出选择,由用户自己来确认选择Yes或者No.

    InputDialog:提示输入文本

    MessageDialog:显示信息

    OptionDialog:组合其它3个对话框类型

  显示效果如下图:

  

  三.监听鼠标事件---MouseListener

    MouseListener是一个接口,用于接收组件上“感兴趣”的鼠标事件的侦听器接口,包括按下、释放、单击、进入和离开。可以使用JFrame的addMOuseListener方法加入监听器,然后实现以下5个方法:

    mosueClicked(mouseEvent e); //监听鼠标单击事件

    mouseEntered(mouseEvent e); //监听鼠标进入事件

    mouseExited(mouseEvent e); //监听鼠标离开事件

    mousePressed(mouseEvent e); //监听鼠标按下事件

    mouseReleaseed(mouseEvent e); //监听鼠标释放事件

   确定鼠标坐标的类:利用MouseEvent e这个参数可以获得鼠标的坐标:

    e.getX();  //获得鼠标横坐标

    e.getY(); //获得鼠标纵坐标

  四.利用Graphics绘制图形

    图形环境的概念同在GUI平台上开发应用程序禁摩相关,利用Graphics类可以绘制多种常用图形:

    drawString(); //绘制字符串

    drawOval(); //绘制一个空心圆形

    fillOval(); //绘制一个实心圆形

    drawLine(); //绘制一条直线

    drawImage(); //绘制一张已经存在的图片,并显示在窗体中

    setColor(); //设置画笔的颜色

    setFont(); //设置绘制文字的字体

  效果图:

 

  总结:整个学习过程断断续续花了两天时间,由于经验的缺乏,一开始在没有完全理清设计思路就开始码代码,在码代码过程中也没有逐个模块分别调试,导致最后码完代码后出现了各种奇异的问题,最典型的就是鼠标的各种事件没响应,之前也没专门学习过鼠标事件处理类,所以一直都找不出问题所在。没办法,只能一遍又一遍对比源码,慢慢才发现主类竟然没有implements MouseListener这个接口,可更气人的是,加上去之后鼠标事件还是没响应,直到前几分钟再次对比源码才发现,原来窗体中也没有添加监听器,少了这么一句:this.addMouseListener(this);  当初焦头烂额都找不出的根源,原来就是自己的粗心造成,归根结底还是基础知识的不牢靠,同时也缺少实践经验,导致一些很可笑的bug出现。

posted on 2014-07-12 18:58  小太阳550  阅读(490)  评论(1)    收藏  举报

导航