计算机程序设计实验报告4答案,程序设计实验报告4

篇2:《网络程序设计》教师实验报告

《网络程序设计》教师实验报告 本文关键词:实验,教师,报告,网络程序设计

《网络程序设计》教师实验报告 本文简介:《网络程序设计》教师实验报告学院:信息科学与技术学院专业:学期:2013~2014学年第一学期教师:I目录实验1熟悉C#运行环境11.1实验目的11.2实验预习11.3实验任务1实验2结构化程序设计32.1实验目的32.2实验预习32.3实验任务3实验3使用数组63.1实验目的63.2实验预习63.

《网络程序设计》教师实验报告 本文内容:

《网络程序设计》

教师实验报告

院:信息科学与技术学院

业:

期:2013~2014学年第一学期

师:

I

目录

实验1

熟悉C#运行环境1

1.1

实验目的1

1.2

实验预习1

1.3

实验任务1

实验2

结构化程序设计3

2.1

实验目的3

2.2

实验预习3

2.3

实验任务3

实验3

使用数组6

3.1

实验目的6

3.2

实验预习6

3.3

实验任务6

4.1

实验目的9

4.2

实验预习9

4.3

实验任务9

实验5

继承和接口设计12

5.1

实验目的12

5.2

实验预习12

5.3

实验任务12

实验6

创建Windows

应用程序16

6.1

实验目的16

6.3

实验任务16

实验7

用户界面设计(一)20

7.1

实验目的20

7.2

实验预习20

7.3

实验任务20

实验8

用户界面设计(二)23

8.1

实验目的23

8.2

实验预习23

8.3

实验任务23

24

实验1

熟悉C#运行环境

院(系):信息科学与技术学院课程名称:网络程序设计教师签名:

班级

信B1211、12

学号

实验室

专业

姓名

计算机号

实验名称

所用软件

实验成绩

1.1

实验目的

1.了解和掌握C#语言的主要特点。

2.熟悉C#语言的程序开发环境,掌握C#语言的上机步骤。

3.熟练掌握源程序的建立、编辑、编译、保存和运行的基本方法。

4.会编写简单的控制台程序和Windows应用程序。

1.2

实验预习

1.熟悉Visual

C#的启动和退出以及Visual

C#中的编辑、编译、连接和运行命令。

2.了解Visual

C#开发环境的配置。

1.3

实验任务

1.Visual

C#的启动。启动成功的界面截图如下:

2.认识Visual

C#的菜单栏、工具栏,工具箱,解决资源方案管理器,代码编辑窗口。分别截图如下:

3.完成一个简单的控制台程序的编写、运行。并将结果截图。

4.完成一个简单的Windows程序的编写、运行。并将结果截图。

实验2

结构化程序设计

院(系):信息科学与技术学院课程名称:网络程序设计教师签名:

班级

信B1211、12

学号

实验室

专业

姓名

计算机号

实验名称

所用软件

实验成绩

2.1

实验目的

1.认识C#语言,熟悉C#语言的语法结构。

2.掌握C#语言中4种基本数据类型的特点、数据类型变量的定义及使用。

3.掌握不同数据类型运算时,数据类型的转换规则。

4.熟练掌握赋值语句。

5.掌握C#语言中表达式语句以及不同运算符的运算规则和优先级。

2.2

实验预习

1.熟悉各种数据类型变量的定义形式。

2.各种数据类型的取值范围。

3.各类运算符的优先级和结合规则。

4.常量与变量的区别和联系。

2.3

实验任务

1.设计一个控制台程序Proj3-8,定义变量int

a=2,b=3;

float

x=3.5f,y=2.5f;并求表达式(float)(a+b)/2+(int)x%(int)y的值。【要求写出代码,并将运行结果截图】

using

System;

using

System.Collections.Generic;

using

System.Text;

namespace

Proj3_8

{

class

Program

{

static

void

Main(string[]

args)

{

int

a

=

2,b

=

3;

float

x

=

3.5f,y

=

2.5f;

Console.WriteLine(“{0}“,(float)(a

+

b)

/

2

+

(int)x

%

(int)y);

}

}

}

2.设计一个控制台程序Proj3-9,定义变量int

a=3,b=4,c=5;

并求表达式(++c-1)

using

System.Collections.Generic;

using

System.Text;

namespace

Proj3_9

{

class

Program

{

static

void

Main(string[]

args)

{

int

a

=

3,b

=

4,c

=

5;

Console.WriteLine(“{0}“,(++c

-

1)

}

}

}

3.设计一个控制台程序Proj3-10,声明一个学生结构类型Stud,包含学号、姓名和出生日期成员,定义Stud结构的两个学生变量s1和s2并赋值,求他们出生在星期几和他们出生相差的天数。【要求写出代码,并将运行结果截图】

using

System;

using

System.Collections.Generic;

using

System.Text;

namespace

Proj3_10

{

enum

WeekDayhz

{星期日,星期一,星期二,星期三,星期四,星期五,星期六};

class

Program

{

struct

Stud//结构类型声明应放在Main函数的外面

{

public

int

xh;//学号

public

string

xm;//姓名

public

DateTime

birthday;//出生日期

}

static

void

Main(string[]

args)

{

Stud

s1,s2;

s1.xh

=

100;

s1.xm

=

“李明“;

s1.birthday

=

new

DateTime(1985,10,18);

s2.xh

=

200;

s2.xm

=

“王丽“;

s2.birthday

=

new

DateTime(1986,2,16);

int

i

=

(int)s1.birthday.DayOfWeek;

Console.WriteLine(“{0}出生在{1}“,s1.xm,(WeekDayhz)i);

i

=

(int)s2.birthday.DayOfWeek;

Console.WriteLine(“{0}出生在{1}“,s2.xm,(WeekDayhz)i);

Console.WriteLine(“{0}和{1}相差{2}天“,s1.xm,s2.xm,s2.birthday

-

s1.birthday);

}

}

}

4.验证课本P56页的例3.7。【要求写出代码,并将运行结果截图】

using

System;

namespace

Proj3_7

{

class

Program

{

static

void

Main(string[]

args)

{

DateTime

d1

=

DateTime.Now;

//定义当前日期时间变量

DateTime

d2

=

new

DateTime(2009,10,1);

//定义一个日期时间变量

Console.WriteLine(“d1:{0}“,d1);

int

i

=

d1.Year;

int

j

=

d1.Month;

int

k

=

d1.Day;

int

h

=

d1.Hour;

int

m

=

d1.Minute;

int

s

=

d1.Second;

Console.WriteLine(“d1:{0}年{1}月{2}日{3}时{4}分{5}秒“,i,j,k,h,m,s);

Console.WriteLine(“d2:{0}“,d2);

Console.WriteLine(“相距时间:{0}“,d2

-

d1);

DateTime

d3

=

d1.AddDays(100);

//d3为d1的100天后的日期

Console.WriteLine(“d3:{0}“,d3);

Console.WriteLine(DateTime.IsLeapYear(i));

Console.WriteLine(DateTime.IsLeapYear(d2.Year));

}

}

}

实验3

使用数组

院(系):信息科学与技术学院课程名称:网络程序设计教师签名:

班级

信B1211、12

学号

实验室

专业

姓名

计算机号

实验名称

所用软件

实验成绩

3.1

实验目的

1.掌握C#中数组的声明和使用方法。

2.掌握C#中集合的声明和使用方法。

3.掌握Array类、ArrayList类使用方法。

3.2

实验预习

1.了解数组的定义。

2.了解数组的初始化。

3.了解Array类的属性和方法。

4.了解ArrayList类的属性和方法。

3.3

实验任务

1.验证课本P77例5.1。【将运行结果截图】

2.验证课本P79例5.2。【将运行结果截图】

3.验证课本P79例5.3。【将运行结果截图】

4.验证课本P85例5.4。【将运行结果截图】

5.编写一个控制台程序项目Proj5-6,假设10个整数用一个一维数组存放,求其最大值和最小值。【要求写出代码,并将运行结果截图】

using

System;

using

System.Collections.Generic;

using

System.Text;

namespace

Proj5_6

{

class

Program

{

static

void

Main(string[]

args)

{

int[]

a

=

new

int[10]{1,8,3,4,7,9,6,10,2,5};

int

n=10,max1,max2,i;

max1=a[0]>a[1]?a[0]:a[1];

max2=a[0]>a[1]?a[1]:a[0];

for

(i=2;i=

0)

{

listBox1.Items.Add(listBox2.SelectedItem);

listBox2.Items.RemoveAt(listBox2.SelectedIndex);

}

enbutton();

}

private

void

button4_Click(object

sender,EventArgs

e)

{

foreach

(object

item

in

listBox2.Items)

listBox1.Items.Add(item);

listBox2.Items.Clear();

enbutton();

}

}

}

9.创建一个Windows窗体项目Proj8-4,向其中添加一个窗体Form1,实现用户登录(输入用户名和口令,假设正确的用户/口令是1234/1234),并给出相应的提示信息。规定用户错误输入的次数不超过3次。

10.在Proj8-4项目中添加一个窗体Form2,设计该窗体内容,运行界面如下图。

实验7

用户界面设计(一)

院(系):信息科学与技术学院课程名称:网络程序设计教师签名:

班级

信B1211、12

学号

实验室

专业

姓名

计算机号

实验名称

所用软件

实验成绩

7.1

实验目的

1.掌握C#菜单的基本结构和组成。

2.掌握C#下拉式菜单和弹出式菜单的设计方法。

3.掌握通用对话框的使用。

7.2

实验预习

1.了解菜单的基本结构。

2.了解菜单的运行机制。

7.3

实验任务

1.验证课本P207例9.1,掌握下拉式菜单的使用。【要求写出核心代码,并将运行结果截图】

private

void

addop_Click(object

sender,EventArgs

e)

{

int

n;

n

=

Convert.ToInt16(textBox1.Text)

+

Convert.ToInt16(textBox2.Text);

textBox3.Text

=

n.ToString();

}

private

void

subop_Click(object

sender,EventArgs

e)

{

int

n;

n

=

Convert.ToInt16(textBox1.Text)

Convert.ToInt16(textBox2.Text);

textBox3.Text

=

n.ToString();

}

private

void

mulop_Click(object

sender,EventArgs

e)

{

int

n;

n

=

Convert.ToInt16(textBox1.Text)

Convert.ToInt16(textBox2.Text);

textBox3.Text

=

n.ToString();

}

private

void

divop_Click(object

sender,EventArgs

e)

{

int

n;

n

=

Convert.ToInt16(textBox1.Text)

/

Convert.ToInt16(textBox2.Text);

textBox3.Text

=

n.ToString();

}

private

void

op_Click(object

sender,EventArgs

e)

{

if

(textBox2.Text==““||

Convert.ToInt16(textBox2.Text)

==

0)

divop.Enabled

=

false;

else

divop.Enabled

=

true;

}

2.验证课本P209例9.2,掌握弹出式菜单的使用。【要求将运行结果截图】

3.验证课本P214例9.3,掌握通用对话框的使用。【要求写出核心代码,并将运行结果截图】

4.验证课本P224例9.4,掌握TreeView的使用。【将运行结果截图】

5.验证课本P231例9.5,掌握单选按钮的使用。【将运行结果截图】

实验8

用户界面设计(二)

院(系):信息科学与技术学院课程名称:网络程序设计教师签名:

班级

信B1211、12

学号

实验室

专业

姓名

计算机号

实验名称

所用软件

实验成绩

8.1

实验目的

1.掌握C#菜单的基本结构和组成。

2.掌握C#下拉式菜单和弹出式菜单的设计方法。

3.掌握通用对话框的使用。

8.2

实验预习

1.了解菜单的基本结构。

2.了解菜单的运行机制。

8.3

实验任务

1.创建一个Windows窗体应用程序项目Proj9-2,添加一个窗体Form1,其中有一个下拉式菜单,包含菜单项如下:

字体(menu1)

…宋体(menu11)

…仿宋(menu12)

…-

…黑体(menu13)

…幼园(menu14)

…楷体(menu15)

大小(menu2)

…28(menu21)

…20(menu22)

…-

…16(menu23)

…12(menu24)

…8(menu25)

当用户单击菜单项时,改变窗体中一个标签的字体和大小。

2.在项目Proj9-2基础上,实现课本P237的上机实验9的内容。

篇3:Java程序设计实验报告2(弹球游戏)1

Java程序设计实验报告2(弹球游戏)1 本文关键词:弹球,程序设计,实验,报告,游戏

Java程序设计实验报告2(弹球游戏)1 本文简介:《Java语言程序设计》课程设计实习报告题目:班级:学号:姓名:同组人员:指导老师:张彬一、实验目的1、掌握Swing图形用户界面编程以及事件处理等,掌握java绘图技术。2、掌握多线程编程的基本原理,能使用Runnable、ExecutorService等接口进行线程的创建、启动等工作。3、培养独

Java程序设计实验报告2(弹球游戏)1 本文内容:

《Java语言程序设计》课程设计

实习报告

题目:

班级:

学号:

姓名:

同组人员:

指导老师:张彬

一、实验目的

1、

掌握Swing图形用户界面编程以及事件处理等,掌握java绘图技术。

2、

掌握多线程编程的基本原理,能使用Runnable、ExecutorService等接口进行线程的创建、启动等工作。

3、

培养独立查找资料,并解决问题的能力。

二、实验任务

1、

设计并编程实现弹球游戏:

用户能通过GUI组件指定生成小球的数量,每个小球将从随机的位置出现,并具有随机颜色,随机速度以及随机的运动方向,小球沿初始方向匀速运动,当碰到窗口边缘时,小球将依据受力原理改变运动方向(可简化考虑,受力只改变小球的运动方向,小球仍按照初始速度匀速运动,且不考虑小球之间的碰撞)。

鼠标在界面中显示为方块状,玩家需按住鼠标来回移动以避开运动的小球及屏幕四周,如果鼠标碰到任一小球或者窗口四周,则游戏结束。

程序需提供计时功能,并最终显示玩家能坚持多少秒。

2、

程序要求:

(1)

具备相应界面,并通过事件编程,实现相应的GUI组件功能。

(2)

使用多线程技术,在程序窗口区域绘制小球,并以线程控制小球的移动,实现动画效果。

(3)

实现鼠标与屏幕四周,以及与小球的碰撞检测。

三、开发工具与平台

1.开发工具:Eclipse默认是一个和Jbuilder类似的Java开发工具,但它不仅仅只

是Java开发工具,只要装上相应的插件,eclipse也可作为其它语言的开发工具。如C/C++插件(CDT)。

2.开发平台:JDK1.5

四、设计思路

1.界面设计

(1)制作一个简单的面板JFrame,文件保存为bollFrame.java

其中为一public的类

bollFrame,其构造方法为:

bollFrame(int

n){

super();

setTitle(“我的弹球小游戏“);

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

Dimension

dimension

=

Toolkit.getDefaultToolkit().getScreenSize();//得到

电脑屏幕大小

setSize(450,450);

setLocation((dimension.width-game.getWidth())/2-250,(dimension.height-game.getHeight())/2-250);//设置面板显示基中;

this.n

=

n;

myBollPanel

=

new

bollPanel(n);//构造一个画板;

add(myBollPanel);//将画板放入JFrame

createMenu();//创建菜单;

setJMenuBar(bar);

}

(2)构造画板类,文件保存为bollPanel.java

其构造函数如下:

bollPanel(int

n){

this.n

=

n;

//

executorThread

=

Executors.newCachedThreadPool();//创建线程池;

mouse

=

new

mouseThread(mxNow,myNow,groupThread,this);//启动鼠标线程;

this.setIsOver(false);//游戏开始线程条件的判断;

for(int

i

=0

;imyBollThread

=new

bollThread(this);

groupThread.add(myBollThread);

//executorThread.execute(myBollThread);//小球线程加入线程池;

}

addMouseListener(this);

addMouseMotionListener(this);

}

Paint()方法如下构造:

public

void

paint(Graphics

g){

if(!this.getIsOver())

//如果游戏还没结束;

{

super.paint(g);//清除原先的图像

g.setColor(Color.RED);

g.setFont(new

Font(“宋体“,Font.BOLD+Font.ITALIC,15));

g.drawString(“你已坚持:“+getT()+“S“,15,15);//计时器的显示;

for(int

i

=

0;i(getWidth()-23)||xNow(getHeight()-23)||yNow<0){//碰到上下边界;

groupThread.get(i).dy

=

-groupThread.get(i).dy;

}

groupThread.get(i).setxNow(xNow+groupThread.get(i).getdx());//

设置下一个位置;

groupThread.get(i).setyNow(yNow+groupThread.get(i).getdy());

}

}

if(isMouse){

g.drawImage(new

ImageIcon(“boll.gif“).getImage(),mxNow,myNow,40,40,this);//鼠标的图像;

}

}//end

paint();

总体界面如下:

2.逻辑设计

(1).首先,我们考虑到多个小球的运动,实质上是多线程的使用,n个小球我们就同时启动n个线程去控制每个小球的运动。因此我构造出一个类作为一个小球的线程,保存文件为bollThread.java,顾名思义,小球线程类。相关构造方法如下:

public

bollThread(bollPanel

my){

this.myPanel

=

my;

xStart

=

data.nextInt(200);//随机产生开始位置;

yStart

=

data.nextInt(200);

setxNow(xStart);设置现在的位置;

setyNow(yStart);

setdx();//设置随机方向使用;注意:若不设置为随机,则所有小球将相同一个方向运动;

setdy();

}

(2)再次,小球的出现需要有载体,这就是画板,前面界面设置中已提到过,通过让多个小球共享一个画板,以及通过线程控制小球的重绘,最后通过画板显示给用户。

(3)在第(2)点中提到的画板上我们需要实现鼠标的监听,以下给出几个重要的鼠标事件监听:

public

void

mousePressed(MouseEvent

e)

{//单击启动鼠标事件;

if(e.getButton()==MouseEvent.BUTTON1){

copy.schedule(new

task(),0,1000);//启动定时器;

for(int

i

=0

;i(this.getWidth()-30)||mxNow(this.getHeight()-30)||myNow<=0){//鼠标是否碰到边界;

//

executorThread.shutdown();

this.setIsOver(true);

copy.cancel();

JOptionPane.showMessageDialog(null,“你撞墙了,下次小心点。。。游戏结束“,“提示“,JOptionPane.OK_OPTION);

this.removeMouseListener(this);

this.removeMouseMotionListener(this);

}

for(int

i

=0

;iint

xNow

=groupThread.get(i).getxNow();

int

yNow

=

groupThread.get(i).getyNow();

if(isPeng(xNow,yNow,mxNow,myNow)){

//

executorThread.shutdown();

this.setIsOver(true);

copy.cancel();

JOptionPane.showMessageDialog(null,“if(你撞球了){“+“/n“+“挑战失败,游戏结束.}“,“提示“,JOptionPane.OK_OPTION);

//System.exit(0);

this.removeMouseListener(this);

this.removeMouseMotionListener(this);

}

//鼠标的上下左右边和

球碰撞的情况,

}

}

(4)

如果游戏开始后我们突然松开鼠标,让我们控制的小球(或“眼睛“)停留在最后松开的点上,那么小球碰到它还会判断是否相撞吗?答案是可以的,我们可以通过编写一个鼠标线程类来实现,保存文件为mouseThread.java;让此线程在我们按下鼠标开始游戏时同时启动,在我们松开鼠标时启动判断相撞事件。

相关的构造方法如下:

mouseThread(int

mxNow,int

myNow,Listgroup,bollPanel

bollpane){

this.mxNow

=

mxNow;//传入鼠标现在位置;

this.myNow

=

myNow;

this.groupThread

=

group;//传入小球线程组;

this.bollpane

=

bollpane;//传入画板对象;

}

3.

程序测试

在程序测试中,先后测试出了,以下几个注意点:

A.

在判断小球与鼠标控制的小球(“眼睛”)相撞时,条件中用到两点之间的距离问题,发现条件不能是两点距离刚好等于两相撞物体半径和,此条件太苛刻,可能引起判断的失误(概率蛮高的呵呵),而应该是小于半径和。

B.

.在小球碰撞或控制的小球(”眼睛“)碰到边界游戏结束时,已经停止了线程,小球竟然还能动,而且是缓慢移动,但是判断是否碰撞及边界问题都能正常执行,与我所意料的完全相反,到现在也不知道是怎么回事,只能在paint()

里进行条件判断,只让bollPanel留下最后一次的个小球及“眼睛”位置。

C.这是最后才调试出来的,也是这个游戏中较难注意到的。

就是一些boolean变量的设置:

private

boolean

isTime;//定时器是否启动;

private

boolean

isGroupThread;//所有小球线程组是否启动;

private

boolean

isMouseThread;//鼠标线程是否启动;

private

boolean

isMouse;//鼠标事件是否启动;

private

boolean

isOver;//游戏是否结束;

刚开始时并没有注意到这些,如果我点击鼠标左键开始游戏时,启动了小球线程,这时要设置变量isGroupThread

=

true标志小球线程组已启动,释放鼠标启动鼠标线程时,isMouseThread

=

true让鼠标线程来控制与小球相撞的判断,定时器也在这时响应启动

isTime

=true开始计时,若不设置这些的话,将发生以下本质上的共同错误:

:等我释放鼠标后想再次控制小球,就必须在一次启动鼠标事件,这时将重新启动一次计时器,重新启动一次小球线程组,重新启动鼠标线程;这样的结果是导致游戏的结果不确定性,没碰到小球(实际上已碰撞)它就检测碰撞结束游戏。以及计时器的计时紊乱等。

具体调试后的相关代码实现见附录.。

五、实验总结

通过这次的程序设计,我更加明白了学以致用的道理,对线程的应用使得我更好更快的掌握了线程的本质,同时,在此次的程序设计中,经过不断地调试,是我明白了一个程序或项目要做到“精致”,是是需要花多大的精力和耐心,总之,学以致用,会将学到的知识应用到实际中才是学之根本。

此次实验也更了解到了线程的知识,比如:一个线程stop后,不能再用start启动,而应当重新实例化,在start()。也就是说线程的状态转换过程(新建-就绪-运行-阻塞-死忙)是不可逆的,这是个人理解,至少从本实验中可以得到验证。

最后,感谢老师的指导和同学们对我的帮助。

6、

附录

以下是调试后的相关算法实现:

A:

public

boolean

isPeng(int

xNow,int

yNow,int

mxNow,int

myNow){//利用两点之间的距离算法,判断是否撞球

int

x1

=

xNow+15,y1

=

yNow+15;

int

x2

=

mxNow+20,y2

=

myNow+20;

int

mulx

=

x1-x2,muly

=

y2

-y1;

double

sum

=

Math.pow(muly,2)+Math.pow(mulx,2);

if(sumreturn

true;

else

return

false;

}

B:

public

void

paint(Graphics

g){

if(!this.getIsOver())

//在此判断游戏是否结束;

{

super.paint(g);//清除原先的图像

g.setColor(Color.RED);

g.setFont(new

Font(“宋体“,Font.BOLD+Font.ITALIC,15));

g.drawString(“你已坚持:“+getT()+“S“,15,15);

for(int

i

=

0;i(getWidth()-23)||xNow(getHeight()-23)||yNow<0){//碰到上下边界;

groupThread.get(i).dy

=

-groupThread.get(i).dy;

}

groupThread.get(i).setxNow(xNow+groupThread.get(i).getdx());

groupThread.get(i).setyNow(yNow+groupThread.get(i).getdy());

}

}

if(isMouse){

g.drawImage(new

ImageIcon(“boll.gif“).getImage(),mxNow,myNow,40,40,this);

}

}//end

paint();

C

:

(1)public

void

mousePressed(MouseEvent

e)

{//单击启动鼠标事件;

if(e.getButton()==MouseEvent.BUTTON1){

if(isMouseThread){//鼠标线程是否活着;

mouse.stop();

isMouseThread

=

false;

}

if(!isTime){

copy.schedule(new

task(),0,1000);//启动定时器;

isTime

=

true;

}

if(!isGroupThread){

for(int

i

=0

;i(this.getWidth()-30)||mxNow(this.getHeight()-30)||myNow<=0){//鼠标是否碰到边界;

//

executorThread.shutdown();

this.setIsOver(true);

copy.cancel();

JOptionPane.showMessageDialog(null,“你撞墙了,下次小心点。。。游戏结束“,“提示“,JOptionPane.OK_OPTION);

this.removeMouseListener(this);

this.removeMouseMotionListener(this);

}

for(int

i

=0

;iint

xNow

=groupThread.get(i).getxNow();

int

yNow

=

groupThread.get(i).getyNow();

if(isPeng(xNow,yNow,mxNow,myNow)){

//

executorThread.shutdown();

this.setIsOver(true);

copy.cancel();

JOptionPane.showMessageDialog(null,“if(你撞球了){“+“/n“+“挑战失败,游戏结束.}“,“提示“,JOptionPane.OK_OPTION);

//System.exit(0);

this.removeMouseListener(this);

this.removeMouseMotionListener(this);

}

//鼠标的上下左右边和

球碰撞的情况,

}

}

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值