Java编程实例模拟钢琴.docx
《Java编程实例模拟钢琴.docx》由会员分享,可在线阅读,更多相关《Java编程实例模拟钢琴.docx(12页珍藏版)》请在三一办公上搜索。
1、Java编程实例模拟钢琴Java编程实例模拟钢琴 本例知识点 新学知识 已学知识 使用AudioClip类 使用MouseEvent类 使用Image类 使用Frame类 一句话讲解 播放声音 处理鼠标事件 制作图片 制作界面框架 一、练习具体要求 本练习制作模拟钢琴的实例。如图98-1所示,程序执行后,创建一个带有模拟钢琴键盘的面板,用户可以通过键盘或者鼠标来“敲击”钢琴键盘发出声音,也可以通过电脑键盘的组合键实现钢琴的高音。 二、程序及注释 编程思路:首先,本练习因为要制作模拟钢琴的实例,所以首先要生成程序界面:先通过语句Image m_ImgUp生成键盘、鼠标松开时显示的键盘图片,再通过
2、语句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 impo
3、rt 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; fin
4、al int STATE_DOWN=1; /初始化小程序 public void init Piano extends Applet implements MouseListener,KeyListener,MouseMotionListener for(int i=0;i14;i+) m_nStatei=0; m_ImgUp=getImage(getDocumentBase,img/up.gif); m_ImgDown=getImage(getDocumentBase,img/down.gif); MediaTracker mediaTracker=new MediaTracker(this
5、); 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;i14;i+) String
6、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;i14;i+) switch(m_nStatei) case STATE_UP: g.drawImage(m_ImgUp,i*IMG_WIDTH,0,this); break; case STATE_DOW
7、N: 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(Wind
8、owEvent 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_n
9、OldDownCount!=-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_
10、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.getKeyCod
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 编程 实例 模拟 钢琴
链接地址:https://www.31ppt.com/p-3159769.html