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;
} } }
}

java中的全局变量与静态变量的区别与联系?有时候为什么专门定义静态变量。(标题党~~)的更多相关文章

  1. java中的全局变量如何实现?ThreadLocal~

    全局变量就是不管你在哪里,都能够直接引用的变量,还不用担心各种问题.每个语言都有自己的全局变量,我想! 一般地,面向过程的语言当中,可能就是一个声明在最前面的变量,后面的代码直接引用,就成了全局变量! ...

  2. Java中Array与ArrayList的10个区别

    Array和ArrayList都是Java中两个重要的数据结构,在Java程序中经常使用.并且ArrayList在内部由Array支持,了解Java中的Array和ArrayList之间的差异对于成为 ...

  3. 转 Java中final、finally、finalize的区别与用法

    Java中final.finally.finalize的区别与用法   1.简单区别:final用于声明属性,方法和类,分别表示属性不可交变,方法不可覆盖,类不可继承.finally是异常处理语句结构 ...

  4. PHP中的全局变量global和$GLOBALS的区别

    1.global Global的作用是定义全局变量,但是这个全局变量不是应用于整个网站,而是应用于当前页面,包括include或require的所有文件. 但是在函数体内定义的global变量,函数体 ...

  5. 【Java学习笔记之二十九】Java中的"equals"和"=="的用法及区别

    Java中的"equals"和"=="的用法及区别 在初学Java时,可能会经常碰到下面的代码: String str1 = new String(" ...

  6. Java中的基本类型和引用类型变量的区别

    Java中的基本类型和引用类型变量的区别   学了一年多,说实话你要我说这些东西我是真说不出来是啥意思     基本类型: 基本类型自然不用说了,它的值就是一个数字,一个字符或一个布尔值. 引用类型: ...

  7. java中String new和直接赋值的区别

        Java中String new和直接赋值的区别     对于字符串:其对象的引用都是存储在栈中的,如果是编译期已经创建好(直接用双引号定义的)的就存储在常量池中,如果是运行期(new出来的)才 ...

  8. Java中public,private,protected,和默认的区别

    Java中public,private,protected,和默认的区别 1.private修饰词,表示成员是私有的,只有自身可以访问: 2.protected,表示受保护权限,体现在继承,即子类可以 ...

  9. java中public与private还有protect的区别

    java中public与private还有protect的区别 总是忘记.

  10. java 中,for、for-each、iterator 区别

    java 中,for.for-each.iterator 区别: 无论是在数组中还是在集合中,for-Each加强型for循环都是它们各自的普通for循环的一种"简写方式",即两者 ...

随机推荐

  1. (转)libcurl库使用方法,好长,好详细。

    一.ibcurl作为是一个多协议的便于客户端使用的URL传输库,基于C语言,提供C语言的API接口,支持DICT, FILE, FTP, FTPS, Gopher, HTTP, HTTPS, IMAP ...

  2. 7.MySQL优化---存储过程和存储函数

    转自互联网. 当一个大型系统在建立时,会发现,很多的SQL操作是有重叠的,个别计算是相同的,比如:业务系统中,计算一张工单的计算方式.当遇到这些情况时,我们运用存储过程就是一个非常棒的优化啦.那么,什 ...

  3. unity3d IO操作

             前几天有个朋友问我为什么在IOS平台中可以正常的读写文件可是在Android平台中就无法正常的读写.当时因为在上班所以我没时间来帮他解决,晚上回家后我就拿起安卓手机真机调试很快就定位 ...

  4. C#异步编程(三)内核模式线程同步

    其实,在开发过程中,无论是用户模式的同步构造还是内核模式,都应该尽量避免.因为线程同步都会造成阻塞,这就影响了我们的并发量,也影响整个应用的效率.不过有些情况,我们不得不进行线程同步. 内核模式 wi ...

  5. Bootstrap确定样式让屏幕缩小后布局不乱

    解决方案是如下 结果如下:

  6. 存储过程错误异常处理例子 --> DECLARE EXIT HANDLER FOR SQLEXCEPTION (转)

    刚才一个朋友问到:  mysql  有类似 mssql 退出执行的方法不? 比如我执行到某个条件,下面就终止执行了.  想起以前写的存储过程,找了好久才找到,就发给他,希望对他有所帮助,贴在这里,留作 ...

  7. ov2640数据

    问题部分解决,数据错误的原因是太快了.将0x11->3f  0xd3->7f 哈哈 问题解决 直接降低7670输出频率 调0x11到最大分频比 现在能完整抓拍QVGA的图像 不过就是采集速 ...

  8. 关于web.xml不同版本之间的区别

    一.Servlet 2.3 <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3// ...

  9. DCloud-MUI:杂项

    ylbtech-DCloud-MUI:杂项 1.返回顶部   2.返回顶部   3.返回顶部   4.返回顶部   5.返回顶部     6.返回顶部   7.返回顶部   8.返回顶部   9.返回 ...

  10. socket模型

    Socket: "主机" + "端口" = 套接字/插座; 仅仅是一个通信模型,不属于七层协议(网络协议). 一台电脑(IP)的一个应用程序(端口) 和 另一台 ...