- 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大作业课程名称:java大作业 设计题目:简单的节奏发声器学院:计算机科学与信息工程学院学生姓名:学生学号:专业班级:指导教师:年月日1.简介程序的主要功能有:提供用户界面,可勾选每组乐器的不同节拍的复选框组成一定规律的节奏发声,且带有播放、暂停、加快/减慢节奏的功能。主要涉及java程序设计以下部分:GUI编程:利用GUI接口使用相应的功能组件和合理的布局方式完成程序的用户界面。组件的事件监听:为相应的功能组件注册事件,利用实现ActionListener接口的内部类完成对应事件的事件监听。JavaSound API:程序主要用到只有MIDI部分,利用核心部分的Sequencer、Sequence与Track对象的方法,完成程序的具体节奏发声。2.程序源码package en;importjava.awt.*;importjavax.swing.*;importjavax.sound.midi.*;importjava.util.*;importjava.awt.event.*;/*这个程序主要用到时JavaSound API的midi即电子发声装置的一些标准*/public class BeatBox {privateJPanelmainPanel;/*用于储存复选框*/privateArrayListJCheckBox checkbokList;/*Sequencer用于控制Sequence对象。 * 它用于将所有的midi数据送到正确装置,相当与实际生活的发声装置,如CD播放器。 * 哎哎不是我们考虑的问题啦!*/private Sequencer sequencer;/*Sequence 是一种数据结构,包含可由 Sequencer 对象回放的音乐信息。 * 类似于生活中CD*/private Sequence sequence;private Track track;/*Track 占用 Sequencer 演奏的数据层次中的一个中间层。 * sequencer 演奏 sequence,它包含音轨,而音轨包含 MIDI 事件。 * Sequencer 可能提供 mute 或 solo 具体音轨的控制。 * 类似于播放的歌曲本身,而track也类似歌曲它是由许多的音符(相对应数字)组成的。*/privateJFrametheFrame;/*各种乐器的名称*/private String[] instrumentNames={低音鼓,闭镲,开镲,原声,铙钹,拍子,高音鼓,高音圆鼓,沙球,口哨,低音手鼓,颈铃,颤音叉,中低嗵鼓,高音撞铃,高音手鼓};/*各种乐器所对应的编号*/private int[] instruments={35,42,46,38,49,39,50,60,70,72,64,56,58,47,67,63};public static void main(String[] args) {newBeatBox().buildGUI();}public void buildGUI(){theFrame=new JFrame(Cyber BeatBox);/*frame.setDefaultCloseOperation()是设置用户在此窗体上发起 close 时默认执行的操作。 * EXIT_ON_CLOSE:使用 System exit 方法退出应用程序。*/theFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);/*使用边界布局*/BorderLayout layout=new BorderLayout();JPanel background=new JPanel(layout);/*设置边框属性距内部10像素*/background.setBorder(BorderFactory.createEmptyBorder(10,10,10,10));checkbokList=new ArrayListJCheckBox();/*Box容器用于放置按钮,设置从上到下纵向布置组件*/Box buttonBox=new Box(BoxLayout.Y_AXIS);/*开始播放,添加开始播放的事件监听*/JButton start=new JButton(开始);start.addActionListener(new MyStartListener());buttonBox.add(start);/*结束播放*/JButton stop=new JButton(结束);stop.addActionListener(new MyStopListener());buttonBox.add(stop);/*加快节奏*/JButtonupTempo=new J
原创力文档


文档评论(0)