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. Spring_总结_04_高级配置(六)_Bean的初始化和销毁

    一.前言 本文承接上一节:Spring_总结_04_高级配置(五)_运行时注入值

  2. Log4j_学习_03_自己动手封装log工具

    二.参考资料 1.log4j 是否可以通过条件判断 在程序运行中动态选择日志存储目录 2.log4j删除N天前日志实现

  3. nyoj-67-三角形面积(S=(1/2)*(x1y2+x2y3+x3y1-x1y3-x2y1-x3y2))

    题目链接 /* Name:nyoj-67-三角形面积 Copyright: Author: Date: 2018/4/26 16:44:47 Description: 三角形的三个顶点坐标求其面积的公 ...

  4. python_判断字符串编码的方法

    1. 安装chardet 在命令行中,进入Python27\Scripts目录,输入以下的命令:easy_install chardet 2. 操作 import chardet f = open(' ...

  5. ICE的连接机制

    1.当使用ICE的proxy进行方法调用时,ICE运行环境会建立一个到服务器的连接.当proxy提供了多个endpoint时   默认的ICE运行环境选择endpoint的行为为random,可以通过 ...

  6. [转]NYOJ-511-移动小球

    大学生程序代写 http://acm.nyist.net/JudgeOnline/problem.php?pid=511 这道题很容易想到要构建一个循环链表来确定每个球的相对位置,就是操作比较繁琐,考 ...

  7. hawq创建filespace,tablespace,database,table

    使用HAWQ   在HAWQ的使用上跟Greenplum基本就一样一样的了.比如:   1. 创建表空间 #选创建filespace,生成配置文件 [gpadmin@master ~]$ hawq f ...

  8. vue切换样式

    在vue中使用事件来切换绑定的class样式,在vue-cli脚手架中的Home.vue中 <template> <div id="main"> <l ...

  9. 使用Jersey和Jetty开发RESTful Web service

    Jersey RESTful 框架是开源的RESTful框架, 实现了JAX-RS (JSR 311 & JSR 339) 规范,是JAX-RS的参考实现,并且提供了更多的特性和工具,简化了R ...

  10. struts2中常用constant命令配置

    struts.objectFactory这个属性用 于说明Struts2的 对象池创建工厂,Struts2也有自己的对象池,就像Spring那样,在配置文件中你可以引用对象池中的对象,你可以借助于Sp ...