收藏 分享(赏)

JAVA火柴小游戏课程设计报告.doc

上传人:精品资料 文档编号:8243351 上传时间:2019-06-16 格式:DOC 页数:26 大小:602KB
下载 相关 举报
JAVA火柴小游戏课程设计报告.doc_第1页
第1页 / 共26页
JAVA火柴小游戏课程设计报告.doc_第2页
第2页 / 共26页
JAVA火柴小游戏课程设计报告.doc_第3页
第3页 / 共26页
JAVA火柴小游戏课程设计报告.doc_第4页
第4页 / 共26页
JAVA火柴小游戏课程设计报告.doc_第5页
第5页 / 共26页
点击查看更多>>
资源描述

1、 成绩: 课 程 设 计 报 告 书所属课程名称 Java 综合实践题 目 取火柴小游戏院 (系) 信息工程学院班 级 软件工程(2)班学 号学生姓名指导教师2016 年 12 月 26 日 课 程 设 计( 论 文 )任 务 书学院 信息工程学院 专 业 15 软件工程 班 级 1 一、课程设计(论文)题目 取火柴小游戏 二、课程设计(论文)工作:自 2016 年 12 月 20 日起至 2016 年 12 月 31 日止。三、课程设计(论文)的内容要求:1本课程设计的目的(1)掌握 Java 语言的程序设计方法; (2)理论联系实际,进一步提高学生的软件开发技术;(3)培养学生分析、解决问

2、题的能力;(4)提高学生实践论文撰写能力。2课程设计的任务及要求1)基本要求:(1)熟悉 JAVA 开发环境,掌握 JAVA 程序的编译和运行;(2)掌握 JAVA 基本编程技术和方法;(3)掌握 GUI 图形界面编程技术;(4)了解异常处理机制。2)课程设计论文编写要求(1)理论设计部分以课程设计论文的形式提交,格式必须按照课程设计论文标准格式进行书写和装订。(2)课程设计报告(论文)包括目录、设计目的、实现思路、实现步骤、设计心得参考文献、附录等;3)课程设计评分标准: (1)学习态度:10 分;(2)系统设计:20 分;(3)编程调试:20 分;(4)回答问题:20 分;(5)论文撰写:

3、30 分。4)参考文献:(1)丁振凡主编. Java 语言实用教程M. 北京邮电大学出版社. 2004.12 (2)丁振凡主编. Java 语言实用教程实验指导M. 北京邮电大学出版社. 2004.12(3)http:/5)课程设计进度安排1准备阶段(4 学时):选择设计题目、了解设计目的要求、查阅相关资料2程序模块设计分析阶段(8 学时):程序总体设计、详细设计3代码编写调试阶段(8 学时):程序模块代码编写、调试、测试4撰写论文阶段(4 学时):总结课程设计任务和设计内容,撰写课程设计论文6)课程设计题目具体要求:编写一个程序使计算机随机产生 2050 根火柴,由人与计算机轮流拿,每次拿的

4、数量不超过 3 根,拿到最后一根为胜。使用图形界面编写,要求界面布局合理,并且能够顺利关闭界面,退出程序。学生签名: 2016 年 12 月 25 日巢湖学院课程设计报告目 录第 1 章 系统设计目的.1第 2 章 系统实现思路2第 3 章 系统详细设计3第 4 章 系统调试运行10第 5 章 课程设计心得.13第 6 章 参考文献.13第 7 章 附录.14巢湖学院课程设计报告第 0 页第 1 章 系统设计目的1)设计一个简单的取火柴小游戏,可以实现以下功能:1:使计算机随机产生数;2:设计出人性化的游戏界面;3:给予不同的提示完成游戏;4:能够顺利关闭游戏,退出游戏。2)通过这次设计,可以

5、帮助学生:1:提高对 Java 语言设计的掌握能力;2:理论联系实际,进一步提高学生的软件开发技术;3:培养学生分析、解决问题的能力。巢湖学院课程设计报告第 1 页第 2 章 系统实现思路该游戏程序设计的主要内容是使用 java 中的各种组件与容器互相搭配来完成的一个小游戏。游戏设计中的主要的知识要点包括 java 的 awt 包中的颜色类,图形类,图像类,事件监听器类,和 util 包中的 stack 类,timer 类,和 timertask 类的使用方法,以及 swing 包中的窗口类,按钮类,标签类,面板类,复选框类等一些常用组件的用法。通过这些组件来掌握事件监听器的用法,java 中

6、栈的用法,以及实现了 Runnable 类的TimerTask 类的用法,通过这个类实现线程技术,还有 Graphics 类中的主要方法的使用,学会运用这些方法来来绘制火柴,绘制图片的目的。1:界面设计设置重置按钮的位置,左上角坐标为(250,10),大小为宽 100,高20;设置用户标签的位置,左上角坐标为(400,10),大小为宽 200,高20;2:功能设计为“Reset”添加行为事件监听器,采用匿名类的方式。为用户按钮定义行为事件监听器。3:代码设计编写每个控件的相关代码,并进行调试。巢湖学院课程设计报告第 2 页第 3 章 系统详细设计1:界面设计创建一个游戏界面,设置用户拿按钮的位

7、置,下拉列表框中的位置,游戏中火柴的颜色,位置和大小。主要代码:import java.awt.Color;/引入颜色类import java.awt.Component;/引入组件类import java.awt.Dimension;/引入封装单个对象中组件的宽度和高度(精确到整数)的类import java.awt.Graphics;/引入图形类import java.awt.Graphics2D;/引入二维图形类import java.awt.event.ActionEvent;/引入事件类import java.awt.event.ActionListener;/引入事件监听器类imp

8、ort java.awt.image.BufferedImage;/引入缓冲图像类import java.util.Stack;/引入栈类import java.util.Timer;/引入计时器类import java.util.TimerTask;/引入了实现 Runnable 接口的类,并具有了线程的功能import javax.swing.JButton;/引入按钮类import javax.swing.JComboBox;/引入下拉列表框类import javax.swing.JFrame;/引入主框架主窗口类import javax.swing.JLabel;/引入标签类impor

9、t javax.swing.JOptionPane;/引入选项面板类import javax.swing.JPanel;/引入面板类public class ha/定义一个公共的主类 Testpublic static void main(String args)/定义主方法 mainnew ha();/调用 Test 类的构造方法 Test()private static final int MIN_CNT = 20;/定义一个常量,设置为最小火柴棍数量为 20private static final int MAX_CNT = 50;/定义一个常量,设置为最大火柴棍数量为 50privat

10、e static final int MAX_TAKE = 3;/定义一个常量,设置为最大拿火柴数量为 3private static final int DELAY = 1000;/定义一个常量,设置为延迟时间为 1000private JFrame mainFrame;/定义主框架变量巢湖学院课程设计报告第 3 页private MyPaintPanel paints;/定义我自己画的面板数组变量private JButton userBtn;/定义我的按钮属性private JComboBox userNum;/定义我的下拉列表private JButton compBtn;/定义电脑按

11、钮属性private JLabel compTxt;/定义电脑标签private Timer timer;/定义计时器的变量private ha()/定义一个私有的构造方法,来完成游戏的初始化动作mainFrame = new JFrame();/实例化一个主窗口mainFrame.setResizable(false);/设置窗体大小不可调整mainFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);/设置默认的关闭操作为关闭窗口JPanel mainPanel = new JPanel();/实例化一个主面板对象mainPanel.se

12、tLayout(null);/设置布局为空,即没有任何布局mainPanel.setPreferredSize(new Dimension(600, 400);/将组件的首选大小设置为常量值mainFrame.add(mainPanel);/将主面板添加到框架(窗口)中JLabel lab11 = new JLabel(“电脑“);/创建并设置标签按钮的内容为电脑lab11.setHorizontalAlignment(JLabel.CENTER);/设置标签内容沿 X 轴的对齐方式lab11.setBounds(0, 10, 200, 20);/设置该标签显示位置为坐标(0,10),宽 20

13、0,高 20mainPanel.add(lab11);/将标签加入主面板JButton btn11 = new JButton(“Reset“);/定义一个重新来的按钮btn11.addActionListener(new ActionListener()/为“Reset”添加行为事件监听器,采用匿名类的方式public void actionPerformed(ActionEvent e)/实现监听器中的方法init();/当单击此按钮时,调用该初始化方法);btn11.setBounds(250, 10, 100, 20);/设置重置按钮的位置,左上角坐标为(250,10),大小为宽100

14、,高 20mainPanel.add(btn11);/重来标签添加到主面板上JLabel lab12 = new JLabel(“用户“);/定义用户标签lab12.setHorizontalAlignment(JLabel.CENTER);/设置用户水平方式为居中lab12.setBounds(400, 10, 200, 20);/设置用户标签的位置,左上角坐标为(400,10),大小为宽200,高 20mainPanel.add(lab12);/将用户标签添加到主面板上compBtn = new JButton(“Computer First“);/定义一个电脑首先拿的按钮巢湖学院课程设计

15、报告第 4 页compBtn.addActionListener(new ActionListener()/为电脑开始按钮定义行为事件监听器Overridepublic void actionPerformed(ActionEvent e)/行为监听器中的默认方法compTake();/当单击电脑按钮时,调用电脑拿方法);compBtn.setBounds(10, 40, 180, 20);/设置电脑按钮的位置,左上角坐标为(10,40),大小为宽180,高 20mainPanel.add(compBtn);/按钮添加到主面板上compTxt = new JLabel();/定义一个空标签co

16、mpTxt.setBounds(10, 70, 400, 20);/设置空标签的位置,左上角坐标为(10,70),大小为宽 400,高 20mainPanel.add(compTxt);/将空标签加到主面板上userBtn = new JButton(“Take“);/定义用户拿按钮userBtn.addActionListener(new ActionListener()/为用户按钮定义行为事件监听器public void actionPerformed(ActionEvent e)userTake();/当单击用户拿按钮时,调用用户拿方法);userBtn.setBounds(400, 4

17、0, 90, 20);/设置用户拿按钮的位置,左上角的坐标为(400,40),大小为宽90,高 20mainPanel.add(userBtn);/用户按钮添加到主面板上userNum = new JComboBox();/定义一个下拉列表框for (int i = 0; i rel)/如果用户拿火柴棍的数量比面板中的数量大的话,执行下面的语句JOptionPane.showMessageDialog(mainFrame, “There is only “ + rel+ “ matches.“);/用标准对话框类调用显示”There is only machines“的对话框return;fo

18、r (int i = 0; i 0)/如果面板中的火柴棍的数量对 4 取余大于 0 的话执行下面的语句takeCnt = rel % (MAX_TAKE + 1);/将面板中的火柴的数量对 4 取余之后赋给电脑要拿的火柴的数量else /否则面板中的火柴棍的数量对 4 取余小于或等于 0 的话执行下面的语句takeCnt = 1 + (int) (MAX_TAKE * Math.random();/随机产生一个小于 4 的数,给电脑要拿的数量for (int i = 0; i data;/定义一个私有的栈类型的变量 dataprivate MyPaintPanel()/构造我的初始面板的方法b

19、img = new BufferedImage(190, 285, BufferedImage.TYPE_3BYTE_BGR);/表示一个具有 8 巢湖学院课程设计报告第 8 页位 RGB 颜色分量的图像,Graphics2D g2 = bimg.createGraphics();/创建一个 Graphics2D,并将它绘制到此 BufferedImage 中g2.setColor(Color.WHITE);/设置要画的颜色,即面板的颜色g2.fillRect(0, 0, 190, 285);/在坐标(0,0)处画一个大小为宽 190,高为 285 的白色矩形区域g2.dispose();/释

20、放此图形的上下文以及它使用的所有系统资源。调用 dispose 之后,就不能再使用 Graphics 对象。data = new Stack();/在此面板中实例化一个具体的栈的对象public void paint(Graphics g)/定义画图形的默认方法g.drawImage(bimg, 0, 0, null);/从坐标(0,0)出开始画图片g.dispose();/释放此图形的上下文以及它使用的所有系统资源。调用 dispose 之后,就不能再使用 Graphics 对象。3:代码设计private void add(int num)/添加火柴棍的方法Graphics2D g2 =

21、bimg.createGraphics();/创建一个 Graphics2D,并将它绘制到此 BufferedImage 中int loc = data.size();/将当前栈的大小赋给变量 loc/System.out.println(“当前栈为“+data.size();int offX = loc % 3 * 65;/动态的坐标int offY = loc / 3 * 15;/动态的坐标g2.setColor(Color.YELLOW);/设置火柴棒的颜色为黄色g2.fillRect(offX + 8, offY + 5, 50, 6);/填充火柴棒的颜色区域g2.setColor(C

22、olor.GREEN);/设置火柴棒头的颜色为绿色g2.fillArc(offX + 50, offY + 3, 10, 10, 0, 360);/设置火柴棒头的坐标,大小为宽和高为 10的 360 度的弧g2.setColor(Color.BLACK);/设置当前火柴棒的根数的颜色g2.drawString(String.valueOf(num), offX, offY+ g2.getFont().getSize();/画出数字data.push(num);/把数字 1 压入堆栈顶部repaint();/重画g2.dispose();/释放此图形的上下文以及它使用的所有系统资源。调用 dis

23、pose 之后,就不能再使用 Graphics 对象巢湖学院课程设计报告第 9 页private int remove()/定义一个移除火柴棍的方法Graphics2D g2 = bimg.createGraphics();/创建一个 Graphics2D,并将它绘制到此 BufferedImage 中int loc = data.size() - 1;/将当前栈的大小即火柴棍的数量减 1/System.out.println(“当前栈为“+data.size();int offX = loc % 3 * 65;/动态的获取坐标int offY = loc / 3 * 15;/动态的获取坐标g

24、2.setColor(Color.WHITE);/设置移除填充颜色为白色g2.fillRect(offX, offY, 60, 15);/画出移除火柴棍的位置g2.dispose();/释放此图形的上下文以及它使用的所有系统资源。调用 dispose 之后,就不能再使用 Graphics 对象repaint();/调用重新画的方法return data.pop();/移除堆栈顶部的对象,并作为此函数的值返回该对象。private void reset()/定义一个重置的方法data.clear();/清楚该面板栈中的内容Graphics2D g2 = bimg.createGraphics()

25、;/创建一个 Graphics2D,并将它绘制到此 BufferedImage 中g2.setColor(Color.WHITE);/设置颜色为白色g2.fillRect(0, 0, 190, 285);/在坐标为(0,0)处填充大小为 190,285 的矩形区域g2.dispose();/释放此图形的上下文以及它使用的所有系统资源。调用 dispose 之后,就不能再使用 Graphics 对象。 repaint();/重绘此组件。 private int getCnt()/定义一个返回第二个面板火柴棍的数量return data.size();/返回当前栈中的火柴棍数量第 4 章 系统调试

26、运行1:运行界面巢湖学院课程设计报告第 10 页2:游戏步骤截图(1)如果是电脑先拿先单击 Computer First 按钮,电脑随机拿走几根火柴,并在电脑按钮下方显示“Computer takes *matches this time”提示信息,单击之后电脑拿走的按钮被禁用,直到用户单击自己的按钮之后才能再拿。巢湖学院课程设计报告第 11 页(2)用户单击自己的 Take 按钮,根据自己的情况拿相应的火柴数,比如说用户拿三根火柴。(3)用户根据自己的需要拿了三根火柴,之后电脑又拿了一根,如此循环,直到哪一方赢得比赛的胜利。从下图中可以看到电脑赢得了比赛的胜利。巢湖学院课程设计报告第 12

27、页第 5 章 课程设计心得经过一个星期的我的火柴小游戏的课程设计,我在汤柱亮老师的指导下,顺利完成该课程设计。通过该课程设计,收获颇多。在本次的课程设计中,我遇到了很多问题,也学会了很多东西。比如Graphics 的绘图方法的问题,如何绘制曲线,如何绘制直线,如何绘制矩形,如何绘制圆形等一些基本图形的绘制,经过自己与同学的讨论,学会了图形类的使用方法。还有浏览器中不能显示 Applet 程序使由于缺少某种插件等等。但是随着这些问题的解决,我也从中学习到了新知识,感觉付出是值得的。第 6 章 参考文献1 耿详义,张跃平. Java 2 实用教程. 北京:清华大学出版社,2004.22 张利国.J

28、ava 实用教程案例.北京:清华大学出版社,2003.103 周晓聪,等.面向对象程序设计与 Java 语言.北京:机械工业出版社,2004.34 李尊朝.Java 语言程序设计.北京:中国铁道出版社,2004.25 (美)Philip Heller.Complate Java 2 Certification Study Guide Fourth Edition(Java 2 证学习指南) (第四版 英文版). 北京:电子工业出版社,2004.1巢湖学院课程设计报告第 13 页第 7 章 附 录程序源代码:import java.awt.Color;/引入颜色类import java.awt.

29、Component;/引入组件类import java.awt.Dimension;/引入封装单个对象中组件的宽度和高度(精确到整数)的类import java.awt.Graphics;/引入图形类import java.awt.Graphics2D;/引入二维图形类import java.awt.event.ActionEvent;/引入事件类import java.awt.event.ActionListener;/引入事件监听器类import java.awt.image.BufferedImage;/引入缓冲图像类import java.util.Stack;/引入栈类import

30、java.util.Timer;/引入计时器类import java.util.TimerTask;/引入了实现Runnable接口的类,并具有了线程的功能import javax.swing.JButton;/引入按钮类import javax.swing.JComboBox;/引入下拉列表框类import javax.swing.JFrame;/引入主框架主窗口类import javax.swing.JLabel;/引入标签类import javax.swing.JOptionPane;/引入选项面板类import javax.swing.JPanel;/引入面板类public class

31、 ha/定义一个公共的主类Testpublic static void main(String args)/定义主方法mainnew ha();/调用Test类的构造方法Test()private static final int MIN_CNT = 20;/定义一个常量,设置为最小火柴棍数量为20private static final int MAX_CNT = 50;/定义一个常量,设置为最大火柴棍数量为50private static final int MAX_TAKE = 3;/定义一个常量,设置为最大拿火柴数量为3private static final int DELAY =

32、1000;/定义一个常量,设置为延迟时间为1000private JFrame mainFrame;/定义主框架变量private MyPaintPanel paints;/定义我自己画的面板数组变量private JButton userBtn;/定义我的按钮属性private JComboBox userNum;/定义我的下拉列表private JButton compBtn;/定义电脑按钮属性巢湖学院课程设计报告第 14 页private JLabel compTxt;/定义电脑标签private Timer timer;/定义计时器的变量private ha()/定义一个私有的构造方法

33、,来完成游戏的初始化动作mainFrame = new JFrame();/实例化一个主窗口mainFrame.setResizable(false);/设置窗体大小不可调整mainFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);/设置默认的关闭操作为关闭窗口JPanel mainPanel = new JPanel();/实例化一个主面板对象mainPanel.setLayout(null);/设置布局为空,即没有任何布局mainPanel.setPreferredSize(new Dimension(600, 400);/将组件的首

34、选大小设置为常量值mainFrame.add(mainPanel);/将主面板添加到框架(窗口)中JLabel lab11 = new JLabel(“电脑“);/创建并设置标签按钮的内容为电脑lab11.setHorizontalAlignment(JLabel.CENTER);/设置标签内容沿 X 轴的对齐方式lab11.setBounds(0, 10, 200, 20);/设置该标签显示位置为坐标(0,10),宽200,高20mainPanel.add(lab11);/将标签加入主面板JButton btn11 = new JButton(“Reset“);/定义一个重新来的按钮btn1

35、1.addActionListener(new ActionListener()/为“Reset”添加行为事件监听器,采用匿名类的方式Overridepublic void actionPerformed(ActionEvent e)/实现监听器中的方法init();/当单击此按钮时,调用该初始化方法);btn11.setBounds(250, 10, 100, 20);/设置重置按钮的位置,左上角坐标为(250,10),大小为宽100,高20mainPanel.add(btn11);/重来标签添加到主面板上JLabel lab12 = new JLabel(“用户“);/定义用户标签lab1

36、2.setHorizontalAlignment(JLabel.CENTER);/设置用户水平方式为居中lab12.setBounds(400, 10, 200, 20);/设置用户标签的位置,左上角坐标为(400,10),大小为宽200,高20mainPanel.add(lab12);/将用户标签添加到主面板上compBtn = new JButton(“Computer First“);/定义一个电脑首先拿的按钮compBtn.addActionListener(new ActionListener()/为电脑开始按钮定义行为事件监听器Overridepublic void actionP

37、erformed(ActionEvent e)/行为监听器中的默认方法巢湖学院课程设计报告第 15 页compTake();/当单击电脑按钮时,调用电脑拿方法);compBtn.setBounds(10, 40, 180, 20);/设置电脑按钮的位置,左上角坐标为(10,40),大小为宽180,高20mainPanel.add(compBtn);/按钮添加到主面板上compTxt = new JLabel();/定义一个空标签compTxt.setBounds(10, 70, 400, 20);/设置空标签的位置,左上角坐标为(10,70),大小为宽400,高20mainPanel.add(

38、compTxt);/将空标签加到主面板上userBtn = new JButton(“Take“);/定义用户拿按钮userBtn.addActionListener(new ActionListener()/为用户按钮定义行为事件监听器Overridepublic void actionPerformed(ActionEvent e)userTake();/当单击用户拿按钮时,调用用户拿方法);userBtn.setBounds(400, 40, 90, 20);/设置用户拿按钮的位置,左上角的坐标为(400,40),大小为宽90,高20mainPanel.add(userBtn);/用户按

39、钮添加到主面板上userNum = new JComboBox();/定义一个下拉列表框for (int i = 0; i rel)/如果用户拿火柴棍的数量比面板中的数量大的话,执行下面的语句JOptionPane.showMessageDialog(mainFrame, “There is only “ + rel+ “ matches.“);/用标准对话框类调用显示”There is only machines“的对话框return;for (int i = 0; i 0)/如果面板中的火柴棍的数量对 4取余大于0的话执行下面的语句takeCnt = rel % (MAX_TAKE + 1

40、);/将面板中的火柴的数量对4取余之后赋给电脑要拿的火柴的数量else /否则面板中的火柴棍的数量对4取余小于或等于0的话执行下面的语句takeCnt = 1 + (int) (MAX_TAKE * Math.random();/随机产生一个小于4的数,给电脑要拿的数量巢湖学院课程设计报告第 18 页for (int i = 0; i data;/定义一个私有的栈类型的变量dataprivate MyPaintPanel()/构造我的初始面板的方法bimg = new BufferedImage(190, 285, BufferedImage.TYPE_3BYTE_BGR);/表示一个具有 8

41、 位 RGB 颜色分量的图像,Graphics2D g2 = bimg.createGraphics();/创建一个 Graphics2D,并将它绘制到此 BufferedImage 中g2.setColor(Color.WHITE);/设置要画的颜色,即面板的颜色g2.fillRect(0, 0, 190, 285);/在坐标(0,0)处画一个大小为宽190,高为285的白色矩形区域g2.dispose();/释放此图形的上下文以及它使用的所有系统资源。调用 dispose 之后,就不能再使用 Graphics 对象。data = new Stack();/在此面板中实例化一个具体的栈的对象

42、public void paint(Graphics g)/定义画图形的默认方法g.drawImage(bimg, 0, 0, null);/从坐标(0,0)出开始画图片g.dispose();/释放此图形的上下文以及它使用的所有系统资源。调用 dispose 之后,就不能再使用 Graphics 对象。巢湖学院课程设计报告第 19 页private void add(int num)/添加火柴棍的方法Graphics2D g2 = bimg.createGraphics();/创建一个 Graphics2D,并将它绘制到此 BufferedImage 中int loc = data.size

43、();/将当前栈的大小赋给变量loc/System.out.println(“当前栈为“+data.size();int offX = loc % 3 * 65;/动态的坐标int offY = loc / 3 * 15;/动态的坐标g2.setColor(Color.YELLOW);/设置火柴棒的颜色为黄色g2.fillRect(offX + 8, offY + 5, 50, 6);/填充火柴棒的颜色区域g2.setColor(Color.GREEN);/设置火柴棒头的颜色为绿色g2.fillArc(offX + 50, offY + 3, 10, 10, 0, 360);/设置火柴棒头的坐

44、标,大小为宽和高为10的360度的弧g2.setColor(Color.BLACK);/设置当前火柴棒的根数的颜色g2.drawString(String.valueOf(num), offX, offY+ g2.getFont().getSize();/画出数字data.push(num);/把数字1压入堆栈顶部repaint();/重画g2.dispose();/释放此图形的上下文以及它使用的所有系统资源。调用 dispose 之后,就不能再使用 Graphics对象private int remove()/定义一个移除火柴棍的方法Graphics2D g2 = bimg.createGr

45、aphics();/创建一个 Graphics2D,并将它绘制到此 BufferedImage 中int loc = data.size() - 1;/将当前栈的大小即火柴棍的数量减1/System.out.println(“当前栈为“+data.size();int offX = loc % 3 * 65;/动态的获取坐标int offY = loc / 3 * 15;/动态的获取坐标g2.setColor(Color.WHITE);/设置移除填充颜色为白色g2.fillRect(offX, offY, 60, 15);/画出移除火柴棍的位置g2.dispose();/释放此图形的上下文以及

46、它使用的所有系统资源。调用 dispose 之后,就不能再使用 Graphics 对象repaint();/调用重新画的方法return data.pop();/移除堆栈顶部的对象,并作为此函数的值返回该对象。private void reset()/定义一个重置的方法data.clear();/清楚该面板栈中的内容Graphics2D g2 = bimg.createGraphics();/创建一个 Graphics2D,并将它绘制到此 BufferedImage 中巢湖学院课程设计报告第 20 页g2.setColor(Color.WHITE);/设置颜色为白色g2.fillRect(0, 0, 190, 285);/在坐标为(0,0)处填充大小为190,285的矩形区域g2.dispose();/释放此图形的上下文以及它使用的所有系统资源。调用 dispose 之后,就不能再使用 Graphics 对象。 repaint();/重绘此组件。 private int getCnt()/定义一个返回第二个面板火柴棍的数量return data.size();/返回当前栈中的火柴棍数量

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报