欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOCX文档下载  

    Java编程实例模拟钢琴.docx

    • 资源ID:3159769       资源大小:40.77KB        全文页数:12页
    • 资源格式: DOCX        下载积分:6.99金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要6.99金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    Java编程实例模拟钢琴.docx

    Java编程实例模拟钢琴Java编程实例模拟钢琴 本例知识点 新学知识 已学知识 使用AudioClip类 使用MouseEvent类 使用Image类 使用Frame类 一句话讲解 播放声音 处理鼠标事件 制作图片 制作界面框架 一、练习具体要求 本练习制作模拟钢琴的实例。如图98-1所示,程序执行后,创建一个带有模拟钢琴键盘的面板,用户可以通过键盘或者鼠标来“敲击”钢琴键盘发出声音,也可以通过电脑键盘的组合键实现钢琴的高音。 二、程序及注释 编程思路:首先,本练习因为要制作模拟钢琴的实例,所以首先要生成程序界面:先通过语句Image m_ImgUp生成键盘、鼠标松开时显示的键盘图片,再通过语句Image m_ImgDown生成键盘、鼠标按下时显示的键盘图片,最后通过语句m_ImgUp=getImage(getDocumentBase,"img/up.gif")和语句m_ImgDown=getImage加载图片,生成钢琴界面。然后,因为要实现模拟钢琴效果,所以要模拟声音的播放,首先通过语句AudioClip m_AudioClip=new AudioClip14生成一个音频对象的数组,保存七个中音和七个高音的声调,最后,通过函数public void keyPressed(KeyEvent e)来响应按下键盘的动作,实现声音的播放。 程序实现及注释: /Piano.java import java.applet.*; import java.awt.*; import java.awt.event.*; public /变量声明 Image m_ImgUp;/键盘、鼠标松开时显示的键盘图片 Image m_ImgDown;/键盘、鼠标按下时显示的键盘图片 AudioClip m_AudioClip=new AudioClip14; int m_nState=new int14; int m_nOldDownCount=-1; final int IMG_WIDTH=17; final int IMG_HEIGHT=85; final int STATE_UP=0; final int STATE_DOWN=1; /初始化小程序 public void init Piano extends Applet implements MouseListener,KeyListener,MouseMotionListener for(int i=0;i<14;i+) m_nStatei=0; m_ImgUp=getImage(getDocumentBase,"img/up.gif"); m_ImgDown=getImage(getDocumentBase,"img/down.gif"); MediaTracker mediaTracker=new MediaTracker(this); mediaTracker.addImage(m_ImgUp,0); mediaTracker.addImage(m_ImgDown,1); try mediaTracker.waitForID(0); catch(Exception e) System.out.println("m_ImgUp is not loaded right"); try mediaTracker.waitForID(1); catch(Exception e) System.out.println("m_ImgDown is not loaded right"); for(int i=0;i<14;i+) String sUrl=new String("au/"+i+".au"); m_AudioClipi=getAudioClip(getCodeBase,sUrl); addKeyListener(this); addMouseListener(this); addMouseMotionListener(this); /画屏函数 public void paint(Graphics g) for(int i=0;i<14;i+) switch(m_nStatei) case STATE_UP: g.drawImage(m_ImgUp,i*IMG_WIDTH,0,this); break; case STATE_DOWN: g.drawImage(m_ImgDown,i*IMG_WIDTH,0,this); break; /主函数 public static void main(String args) Frame frame=new Frame; Piano piano=new Piano; frame.add(piano); Dimension dimension=new Dimension(40,200); frame.setSize(dimension); frame.addWindowListener(new WindowAdapter public void windowClosing(WindowEvent e) System.exit(0); ); frame.setVisible(true); frame.repaint ; void showSound(int nCount) m_AudioClipnCount.play; /响应点击鼠标 public void mouseClicked(MouseEvent e) int nMouseCount=e.getClickCount; /响应鼠标进入 public void mouseEntered(MouseEvent e) /响应鼠标退出 public void mouseExited(MouseEvent e) if(m_nOldDownCount!=-1)m_nStatem_nOldDownCount=STATE_UP; m_nOldDownCount=-1; /响应按下鼠标 public void mousePressed(MouseEvent e) int nX=e.getX; int nY=e.getY; int nCount=nX/IMG_WIDTH; m_nStatenCount=STATE_DOWN; showSound(nCount); m_nOldDownCount=nCount; Graphics g=getGraphics; g.drawImage(m_ImgDown,nCount*IMG_WIDTH,0,this); /响应松开鼠标 public void mouseReleased(MouseEvent e) int nX=e.getX; int nY=e.getY; int nCount=nX/IMG_WIDTH; m_nStatenCount=STATE_UP; m_nOldDownCount=-1; Graphics g=getGraphics; g.drawImage(m_ImgUp,nCount*IMG_WIDTH,0,this); /响应按下键盘 public void keyPressed(KeyEvent e) int nKeyCode=e.getKeyCode; String sKeyName=e.getKeyText(nKeyCode); boolean bControlDown=e.isControlDown; int nCount=-1; switch(nKeyCode) case KeyEvent.VK_1: nCount=0; break; case KeyEvent.VK_2: nCount=1; break; case KeyEvent.VK_3: nCount=2; break; case KeyEvent.VK_4: nCount=3; break; case KeyEvent.VK_5: nCount=4; break; case KeyEvent.VK_6: nCount=5; break; case KeyEvent.VK_7: nCount=6; break; default: return; if(bControlDown)nCount=nCount+7; setPianoKeyDown(nCount); showSound(nCount); Graphics g=getGraphics; g.drawImage(m_ImgDown,nCount*IMG_WIDTH,0,this); public void keyReleased(KeyEvent e) int nKeyCode=e.getKeyCode; String sKeyName=e.getKeyText(nKeyCode); boolean bControlDown=e.isControlDown; int nCount=-1; switch(nKeyCode) case KeyEvent.VK_1: nCount=0; break; case KeyEvent.VK_2: nCount=1; break; case KeyEvent.VK_3: nCount=2; break; case KeyEvent.VK_4: nCount=3; break; case KeyEvent.VK_5: nCount=4; break; case KeyEvent.VK_6: nCount=5; break; case KeyEvent.VK_7: nCount=6; break; default: return; if(bControlDown)nCount=nCount+7; m_nStatenCount=STATE_UP; Graphics g=getGraphics; g.drawImage(m_ImgUp,nCount*IMG_WIDTH,0,this); public void keyTyped(KeyEvent e) void setPianoKeyDown(int nCount) for(int i=0;i<14;i+) m_nStatei=STATE_UP; m_nStatenCount=STATE_DOWN; void setAllPianoKeyUp for(int i=0;i<14;i+) m_nStatei=STATE_UP; /响应拖动鼠标 public void mouseDragged(MouseEvent e) int nX=e.getX; int nY=e.getY; System.out.println("鼠标拖动到:x="+nX+" y="+nY); int m_nTempCount=nX/IMG_WIDTH; if(m_nTempCount=m_nOldDownCount)return; m_nStatem_nTempCount=STATE_DOWN; m_nStatem_nOldDownCount=STATE_UP; showSound(m_nTempCount); Graphics g=getGraphics; g.drawImage(m_ImgDown,m_nTempCount*IMG_WIDTH,0,this); g.drawImage(m_ImgUp,m_nOldDownCount*IMG_WIDTH,0,this); m_nOldDownCount=m_nTempCount; /响应移动鼠标 public void mouseMoved(MouseEvent e) int nX=e.getX; int nY=e.getY; System.out.println("鼠标移动到:x="+nX+" y="+nY); 三、练习效果 本实例代码编写完毕,存盘为:C: j2sdk1.4.0javaprograms Piano.java。 打开计算机的命令提示符窗口,然后在命令提示符窗口中,定位到javaprograms目录,输入javac Piano.java 来编译程序,最后将程序加载到网页上。在javaprograms文件夹下新建一个记事本文件,内容为 <HTML> <HEAD> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> <TITLE>模拟钢琴</TITLE> </HEAD> <BODY> <H1>模拟钢琴</H1> <HR> 请用鼠标和键盘来弹奏这个钢琴。<br> 用键盘的1-7键可以弹奏低音1-7,<br> 用Ctrl+1到ctrl+7可以弹奏高音1-7。<br> <HR> <APPLET CODE="Piano.class" WIDTH="238" HEIGHT="86"> </APPLET> </BODY> </HTML>,然后保存为Piano.html的网页文件。 本例制作完毕,用浏览器打开Piano.html文件便可以看到制作效果。 图98-1 练习效果 四、总结提高 在本练习中,利用Java的声音播放技术和消息响应机制完成了模拟钢琴的制作。通过图形界面的技术,完成了钢琴键盘的制作。通过运用Windows下程序的键盘响应和鼠标响应技术,实现人机交互。 疯狂java简介 疯狂Java是广州为学教育科技有限公司旗下品牌,由李刚老师、肖文吉老师联合创建,作为一家专注于javaEE和3G/4G技术的专业培训服务机构,疯狂Java怀抱“软件强国”的理想,立志以务实的技术来改变中国的软件教育。以“十年磨一剑”的心态打造全中国最强的Java学习体系。 疯狂java培训讲义 疯狂Java相继出版疯狂Java讲义、疯狂Android讲义、轻量级JavaEE企业应用实战、疯狂Ajax讲义、疯狂XML讲义、经典JavaEE企业应用实战、Struts2.1 权威指南、RubyOnRails敏捷开发最佳实践、疯狂Java突破程序员基本功的16课、疯狂JAVA成为程设高手的16堂课等著作。其中疯狂Java体系图书都是已经得到广泛的市场认同,并多次重印的畅销图书,并被多家高校选作教材,部分图书已被翻译成繁体中文版、输出到台湾地区。 疯狂java发展概况 疯狂Java紧扣IT前沿技术的脉搏,高瞻远瞩立于潮头,引领行业标杆,开创IT教育培训的新天地,被称为新式IT教育的“黄埔军校”。疯狂java教育中心主要面对大学生和准大学生的长期就业培训、企业员工定制内训、在职工程师的短期高端培训以及企业级应用的产品研发,其专业服务和质量承诺在客户中赢得广泛的声誉。为保服务的质量,学校与华南理工大学、中山大学、暨南大学、华南师范大学等高等学府建立了师资力量方面的合作关系,同时与中国电信、中国移动、中国邮政、新华南方、汇丰银行等知名企业建立了广泛的战略合作伙伴关系。 疯狂java师资力量 疯狂Java创始人李刚,携疯狂Java精英讲师团队肖文吉、李韩飞、黄勇、陈辉等老师将带给广大学习者“非一般”的疯狂。 疯狂java培训特色 疯狂Java结合自身特色,打破固有思维模式,以突出实战性,系统性,学识转换相结合的理念体系指引下,注重如何将培训内容真正转化为实操经验,以此促进工作能力的达成。在疯狂软件学院,学员通过参与企业实际项目开发,学以致用,获得实际项目经验。凭借自身强悍的师资、一流的课程、真实的项目、超高的就业率已经让广大南方学子成功走上软件工程师职业道路。大量毕业即失业的学子已通过疯狂Java实现了就业。加入疯狂Java,加入改变世界的力量,让我们一起行动,用自己的代码改变世界! 地址:广州市天河区车陂大岗路4号沣宏大厦3011过马路左转前行200米) 联系电话: 020-28309358、28309378 java技术问题咨询QQ:951170790

    注意事项

    本文(Java编程实例模拟钢琴.docx)为本站会员(牧羊曲112)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开