static代表“每个类一个”而不是“每个对象一个”。即静态变量是类的所有对象共有的。
1 static JFrame f;
static MyDrawPanel ml;

整个应用程序如下:

定义在public void go(){...}里面的变量的生存空间仅仅是这个方法,出了这个方法,其他的类和方法是没法调用这个·方法里定义的变量的。

 import javax.sound.midi.ControllerEventListener;

 import javax.sound.midi.MidiEvent;
import javax.sound.midi.MidiSystem;
import javax.sound.midi.Sequence;
import javax.sound.midi.Sequencer;
import javax.sound.midi.ShortMessage;
import javax.sound.midi.Track;
import javax.swing.JFrame;
import javax.swing.*;
import java.awt.*; import java.io.*; public class MiniMusicPlayer3 {
//JFrame frame;
static JFrame f=new JFrame("My first music Video");
static MyDrawPanel ml;
public static void main(String[] args){
MiniMusicPlayer3 mini=new MiniMusicPlayer3();
mini.go();
}
public void go(){
//frame=new JFrame("My first music Video");
//MyDrawPanel myDraw=new MyDrawPanel();
ml=new MyDrawPanel();
//f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.getContentPane().add(ml);
//f.getContentPane(ml);
f.setBounds(,,,);
f.setVisible(true);
try{
Sequencer player=MidiSystem.getSequencer();
player.open(); int[] eventsIWant={};
player.addControllerEventListener(ml,eventsIWant); Sequence sequence=new Sequence(Sequence.PPQ,);//什么意思,待会查一查。
Track track=sequence.createTrack();
int r=;
for(int i=;i<;i+=){
r=(int) ((Math.random()*)+);
track.add(makeEvent(,,r,,i)); track.add(makeEvent(,,,,i)); track.add(makeEvent(,,r,,i+)); } player.setSequence(sequence);
player.setTempoInBPM();
player.start();
}catch(Exception ex){ex.printStackTrace();} } public MidiEvent makeEvent (int comd,int chan,int one,int two,int tick){
MidiEvent event=null;
try{
ShortMessage a=new ShortMessage();
a.setMessage(comd,chan,one,two);
event=new MidiEvent(a,tick);
}catch(Exception e) {}
return event;
} class MyDrawPanel extends JPanel implements ControllerEventListener{
boolean msg=false; public void controlChange(ShortMessage event){
msg=true;
repaint(); } public void paintComponent(Graphics g){
if(msg){
Graphics2D g2d=(Graphics2D) g;
int red=(int) (Math.random()*);
int green=(int) (Math.random()*);
int blue=(int) (Math.random()*);
Color randomColor=new Color(red,green,blue);
g2d.setColor(randomColor); int ht=(int) ((Math.random()*)+);
int width=(int) ((Math.random()*)+); int x=(int) ((Math.random()*)+);
int y=(int) ((Math.random()*)+); g.fillRect(x, y, width, ht);
msg=false;
} } }
}

最新文章

  1. CSS3盒模型display:box;box-flex:3;
  2. 安装VisualStudio 2015 x64 中文企业版失败
  3. Boost学习笔记(五) progress_display
  4. Android 自定义带刻度的seekbar
  5. 20135220谈愈敏Blog8_进程的切换和系统的一般执行过程
  6. Linux 封闭端口和安全
  7. 对Vector3.Lerp 插值的理解
  8. hdu-5681 zxa and wifi(dp)
  9. javascript第九课&quot;闭包&quot;
  10. js几种基本数据类型及之间转换与java的不同、js数组一些常见操作
  11. sql server 2000的安装
  12. 关于thinkphp5手动抛出Http异常时自定义404页面报错的问题
  13. mac上修改host
  14. Capsules for Object Segmentation(理解)
  15. Linux下postgres9.4 版本的单机版安装小笔记
  16. JavaWeb基础-过滤器监听器
  17. 理解ES6中的Promise
  18. django 聚合内容 RSS/Atom
  19. &lt;--------------------------Java接口如何使用------------------------------&gt;
  20. Echarts动态加载柱状图的实例

热门文章

  1. Codeforces Round #260(div2)C(递推)
  2. BZOJ - 2618 凸多边形 (半平面交)
  3. 70. Climbing Stairs Add to List
  4. Jenkins之构建触发器配置(转载)
  5. redis的no-appendfsync-on-rewrite参数
  6. vim直接编辑远程文件
  7. GPIO编程2:使用GPIO监听中断完整程序
  8. [转]socket使用TCP协议时,send、recv函数解析以及TCP连接关闭的问题
  9. HDU 2544 最短路(邻接表+优先队列+dijstra优化模版)
  10. Sass、Less和Stylus