- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
《Java程序设计》实验三报告
一.实验内容:
题1:利用多线程技术编写applet程序。其中包含一个滚动的字符串,字符串从左向右移动,当所有的字符都从屏幕的右边消失后,字符串重新从左边出现并继续向右移动。
题2:编写一个applet内部显示一个蓝色反弹球的程序,通过一个事件使该球运动,在该球撞击applet边框时,它应从边框弹回并以相反方向运动。
选做题1.
二.实验目的:
掌握线程的生命周期及状态迁移, 学会如何创建线程,掌握线程. 的调度策略、线程优先级和线程同步
实验流程:
1.先建立一个窗口
2.据题目中要求多个小球,新建一个tank类以便于后期多次添加小球,而不互相影响。
给tank类丰富各种方法,先将自身画出,然后设置控制自身的移动,初期是左右移动,设置tank的x坐标一直递增,在超出边界后,置零回到出发点。
再后来的小球反弹,在触到边界后,是右侧边界,则x递减回到出发点;是左侧边界则x
实验程序:
TankWarClient.java
import java.awt.*;
import java.awt.event.*;
import java.util.List;
import java.util.ArrayList;
/*后期的属性会很多很多*/
public class TankWarClient extends Frame {
//定义常量,翻番至后期的修改麻烦
public static final int GAME_WIDTH=400;
public static final int GAME_HEIGTHT=200;
Tank myTank = new Tank(-10,150,10,this);//这个this传给tc
Tank myTank2 = new Tank(-10,100,10,this);
Tank myTank3 = new Tank(-10,130,10,this);
//此处使用泛型-------------还不懂
//ListMissile missiles = new ArrayListMissile();
//定义一张虚拟图片
Image offScreenImage=null;
public void paint(Graphics g) {
myTank.draw(g);
myTank2.draw(g);
myTank3.draw(g);
}
public void update(Graphics g) {
//先创建图片,使坦克显示在图片上
if(offScreenImage==null)
offScreenImage=this.createImage(GAME_WIDTH,GAME_HEIGTHT);
Graphics gOffScreen=offScreenImage.getGraphics();
Color c = g.getColor();
gOffScreen.setColor(Color.GREEN);
gOffScreen.fillRect(0, 0,GAME_WIDTH, GAME_HEIGTHT);
gOffScreen.setColor(c);
paint(gOffScreen);
g.drawImage(offScreenImage,0,0,null);//出现了一条线,背景重新刷
}
public void luachFrame(){
this.setLocation(400,300);
this.setSize(GAME_WIDTH,GAME_HEIGTHT);
this.setTitle(玛丽隔壁);
this.setBackground(Color.GREEN);
//此处重写了关闭窗口的事件
this.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
this.setResizable(false);//不能改变窗口大小
setVisible(true);
new Thread (new PaintThread()).start();
}// 还是高了而一个额窗口
/*main 函数在这里---------------------------------------*/
public static void main(String[] args) {
TankWarClient tc=new
文档评论(0)