上机实验指导书-面向对象程序设计(8)

2019-03-09 19:28

操作步骤:

1, 在集成开发环境下创建基于applet小程序,建立如下源程序文件,编译好后,把img

目录夹(含图像文件:自己选定的其它图像文件也行,img文件夹下要有:一个大图像,九个小图像)复制到编译好的字节码文件class所在目录。 2, 运行程序。 源程序代码:

import java.applet.*; import java.awt.*;

import java.awt.event.*; import java.net.*;

public class pintu extends Applet implements MouseListener,KeyListener,Runnable {

Image[] m_Image=new Image[9]; //9个用来装入每个拼图的图片对象 Image m_ImgAll; //总的大图片

int m_nImageNo[][]=new int[3][3]; ////标志现在各个拼图的排列情况

final int NO_IMAGE=-1; //此位置没有拼图

final int IMAGE_WIDTH=120;

//每张拼图的宽

final int IMAGE_HEIGHT=120; ////每张拼图的高

final int DIRECTION_UP=1; final int DIRECTION_DOWN=2; final int DIRECTION_LEFT=3; final int DIRECTION_RIGHT=4; final int DIRECTION_NONE=-1;

final int DELTAX=120; //标志提示信息区的宽度

boolean bWantStartNewGame=false; //游戏是否结束,是否需要开始新游戏 int nStep=0; //已经走的步数 int nTime=0;

//已经玩过的时间,以秒为单位 Thread thTimer; //计时器线程 int nScore=0; //玩家所得的分数 int m_nNumOfImg=0;

//拼图底图所使用的图片的个数

String m_sImgName[]=new String[9]; //记录拼图底图的名字

boolean bOnShowAll=false; //预览的开关

AudioClip m_audioClip1,m_audioClip2; //装载要播放的声音对象 public void init() {

String param=getParameter(\ try {

m_nNumOfImg=Integer.parseInt(param); }

catch(Exception e) {

m_nNumOfImg=1;

System.out.println(\ }

for(int i=0;i

m_sImgName[i]=getParameter(\

System.out.println(m_sImgName[i]);

if(m_sImgName[i]==null)m_sImgName[i]=\ }

System.out.println(param);

MediaTracker mediaTracker=new MediaTracker(this); //建立一个监视器 // for(int i=0;i<9;i++) // {

// int nTemp=i+1;

// m_Image[i]=getImage(getDocumentBase(),\ m_ImgAll=getImage(getDocumentBase(),\ //装载总的大图片

// m_Image[i]=getImage(getDocumentBase(),\// mediaTracker.addImage(m_Image[i],i); mediaTracker.addImage(m_ImgAll,1); // } try {

mediaTracker.waitForID(1); }

catch(Exception e) {

System.out.println(\图片装载出错\ }

if(mediaTracker.isErrorAny())System.out.println(\图片装载出错\ for(int i=0;i<9;i++) {

m_Image[i]=createImage(IMAGE_WIDTH,IMAGE_HEIGHT); Graphics g=m_Image[i].getGraphics(); int nRow=i%3; int nCol=i/3;

g.drawImage(m_ImgAll,0,0,IMAGE_WIDTH,IMAGE_HEIGHT,nRow*IMAGE_WIDTH,nCol*IMAGE_HEIGHT,(nRow+1)*IMAGE_WIDTH,(nCol+1)*IMAGE_HEIGHT,this); System.out.println(\

// m_ImgAll.getGraphics().clipRect(1,1,120,120); // g.copyArea(1,1,120,120,0,0); }

System.out.println(\ thTimer=new Thread(this); //为线程分配内存空间 thTimer.start(); //开始线程 initData();

m_audioClip1=getAudioClip(getCodeBase(),\ m_audioClip2=getAudioClip(getCodeBase(),\ addMouseListener(this); addKeyListener(this); }

public void initImageAgain(int nImgNo) {

//nImgNo为要装载的图像是第几个图像。 if(nImgNo>m_nNumOfImg) {

showStatus(\你要的图片不存在!!\ return; }

// System.out.println(param);

MediaTracker mediaTracker=new MediaTracker(this); //建立一个监视器 // for(int i=0;i<9;i++) // {

// int nTemp=i+1;

// m_Image[i]=getImage(getDocumentBase(),\

m_ImgAll=getImage(getDocumentBase(),\ //装载总的大图片

// m_Image[i]=getImage(getDocumentBase(),\// mediaTracker.addImage(m_Image[i],i); mediaTracker.addImage(m_ImgAll,1); // } try {

mediaTracker.waitForAll(); }

catch(Exception e) {

System.out.println(\图片装载出错\ }

for(int i=0;i<9;i++) {

m_Image[i]=createImage(IMAGE_WIDTH,IMAGE_HEIGHT); Graphics g=m_Image[i].getGraphics(); int nRow=i%3; int nCol=i/3;

g.drawImage(m_ImgAll,0,0,IMAGE_WIDTH,IMAGE_HEIGHT,nRow*IMAGE_WIDTH,nCol*IMAGE_HEIGHT,(nRow+1)*IMAGE_WIDTH,(nCol+1)*IMAGE_HEIGHT,this); System.out.println(\

// m_ImgAll.getGraphics().clipRect(1,1,120,120); // g.copyArea(1,1,120,120,0,0); } }

public void update(Graphics g) {

paint(g); }

public void paint(Graphics g) {

g.setColor(Color.white); //将当前颜色变为白色

g.fillRect(0,0,DELTAX,IMAGE_HEIGHT*3); //填充左边的提示信息区域

g.setFont(new Font(\宋体\ //设置字体

g.setColor(Color.blue); //设置颜色

g.drawString(\步数:\

g.drawString(\现有图片\张\

g.drawString(\请按1-\键改变图片\ //在坐标(10,20)画出字串,来显示现在走了多少步。 g.setColor(Color.white); if(bOnShowAll) {

int x=DELTAX; int y=0;

g.drawImage(m_ImgAll,x,y,this); return; }

for(int i=0;i<3;i++) {

for(int j=0;j<3;j++) {

int x=i*IMAGE_WIDTH+DELTAX; int y=j*IMAGE_HEIGHT;

if(m_nImageNo[i][j]==NO_IMAGE)

g.fill3DRect(x,y,IMAGE_WIDTH,IMAGE_HEIGHT,true); else {

g.drawImage(m_Image[m_nImageNo[i][j]],x,y,this); g.drawRect(x,y,IMAGE_WIDTH,IMAGE_HEIGHT); }


上机实验指导书-面向对象程序设计(8).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:[2015]北师大版语文课本一至六年级古诗词

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: