仓酷云

标题: 了解下JAVA的[JAVA100例]023、滑动杆 [打印本页]

作者: 飘飘悠悠    时间: 2015-1-18 11:22
标题: 了解下JAVA的[JAVA100例]023、滑动杆
从一个编程语言的普及程度来将,一个好的IDE是至关中要的,而现在的java的IDE虽然已经很好了,但是和.net网页编程比起来还是稍微差一些的,这是个客观事实。java要想普及的更好。DE是必须加以改进的。
importjava.awt.*;
importjava.awt.event.*;
importjavax.swing.*;
importjavax.swing.event.*;
/**
*<p>Title:滑动杆演示</p>
*<p>Description:利用滑动杆把持准时器,来把持图片的播放速率</p>
*<p>Copyright:Copyright(c)2003</p>
*<p>Filename:SliderDemo.java</p>
*@version1.0
*/
publicclassSliderDemoextendsJPanel
            implementsActionListener,
                 WindowListener,
                 ChangeListener{
  //设置图片的参数
  staticfinalintFPS_MIN=0;//设置最小值
  staticfinalintFPS_MAX=30;//设置最年夜值
  staticfinalintFPS_INIT=15; //初始数值
  intframeNumber=0;
  intNUM_FRAMES=14;
  ImageIcon[]images=newImageIcon[NUM_FRAMES];
  intdelay;
  Timertimer;
  booleanfrozen=false;

//这个标签用来显现这只小狗
  JLabelpicture;

publicSliderDemo(){
    setLayout(newBoxLayout(this,BoxLayout.PAGE_AXIS));

delay=1000/FPS_INIT;

//信息提醒标签
    JLabelsliderLabel=newJLabel("调剂滑动杆,改动播放速率!",JLabel.CENTER);
    sliderLabel.setAlignmentX(Component.CENTER_ALIGNMENT);

//创立一个滑动杆,界说了最小值和最年夜值和初始值
    JSliderframesPerSecond=newJSlider(JSlider.HORIZONTAL,
                       FPS_MIN,FPS_MAX,FPS_INIT);
    framesPerSecond.addChangeListener(this);

//界说滑动杆参数
    framesPerSecond.setMajorTickSpacing(10);//每10刻度标注一次
    framesPerSecond.setMinorTickSpacing(1);//最小刻度为1
    framesPerSecond.setPaintTicks(true);//绘制滑动杆上的刻度
    framesPerSecond.setPaintLabels(true);//在滑动过程当中绘制滑动块
    framesPerSecond.setBorder(
        BorderFactory.createEmptyBorder(0,0,10,0));

//界说一个用来显现图片的标签
    picture=newJLabel();
    picture.setHorizontalAlignment(JLabel.CENTER);
    picture.setAlignmentX(Component.CENTER_ALIGNMENT);
    picture.setBorder(BorderFactory.createCompoundBorder(
        BorderFactory.createLoweredBevelBorder(),
        BorderFactory.createEmptyBorder(10,10,10,10)));
    updatePicture(0);//显现第一张图

//将成员增加到面板上
    add(sliderLabel);
    add(framesPerSecond);
    add(picture);
    setBorder(BorderFactory.createEmptyBorder(10,10,10,10));

//设置一个准时器来触发这个事务
    timer=newTimer(delay,this);
    timer.setInitialDelay(delay*7);//在每轮轮回停留工夫
    timer.setCoalesce(true);//设置反复轮回
  }
/**
*<br>办法申明:增加一个窗体监听
*<br>输出参数:
*<br>前往范例:
*/
  voidaddWindowListener(Windoww){
    w.addWindowListener(this);
  }
  publicvoidwindowIconified(WindowEvente){
    stopAnimation();
  }
  publicvoidwindowDeiconified(WindowEvente){
    startAnimation();
  }
  publicvoidwindowOpened(WindowEvente){}
  publicvoidwindowClosing(WindowEvente){}
  publicvoidwindowClosed(WindowEvente){}
  publicvoidwindowActivated(WindowEvente){}
  publicvoidwindowDeactivated(WindowEvente){}
/**
*<br>办法申明:对滑动杆举行监听
*<br>输出参数:ChangeEvente滑动杆变化事务
*<br>前往范例:
*/
  publicvoidstateChanged(ChangeEvente){
    JSlidersource=(JSlider)e.getSource();
    if(!source.getValueIsAdjusting()){
      intfps=(int)source.getValue();//取得滑动杆的值
      if(fps==0){
        if(!frozen)stopAnimation();
      }else{
        delay=1000/fps;
        timer.setDelay(delay);
        timer.setInitialDelay(delay*10);
        if(frozen)startAnimation();
      }
    }
  }
/**
*<br>办法申明:入手下手动画
*<br>输出参数:
*<br>前往范例:
*/
  publicvoidstartAnimation(){
    timer.start();
    frozen=false;
  }
/**
*<br>办法申明:中断动画
*<br>输出参数:
*<br>前往范例:
*/
  publicvoidstopAnimation(){
    timer.stop();
    frozen=true;
  }
/**
*<br>办法申明:事务监听
*<br>输出参数:
*<br>前往范例:
*/
  publicvoidactionPerformed(ActionEvente){
    //改动图片帧
    if(frameNumber==(NUM_FRAMES-1)){
      frameNumber=0;
    }else{
      frameNumber++;
    }

updatePicture(frameNumber);//显现下张图

if(frameNumber==(NUM_FRAMES-1)
     ||frameNumber==(NUM_FRAMES/2-1)){
      timer.restart();
    }
  }
/**
*<br>办法申明:绘制以后帧
*<br>输出参数:intframeNum图片帧数数
*<br>前往范例:
*/
  protectedvoidupdatePicture(intframeNum){
    if(images[frameNumber]==null){
      images[frameNumber]=createImageIcon("images/doggy/T"
                         +frameNumber
                         +".gif");
    }

//绘制图片
    if(images[frameNumber]!=null){
      picture.setIcon(images[frameNumber]);
    }else{//假如没有发明图片
      picture.setText("image#"+frameNumber+"notfound");
    }
  }
/**
*<br>办法申明:猎取图片
*<br>输出参数:Stringpath图片路径
*<br>前往范例:ImageIcon图片对象
*/
  protectedstaticImageIconcreateImageIcon(Stringpath){
    java.net.URLimgURL=SliderDemo.class.getResource(path);
    if(imgURL!=null){
      returnnewImageIcon(imgURL);
    }else{
      System.err.println("Couldn
作者: 小女巫    时间: 2015-1-20 21:58
象、泛型编程的特性,广泛应用于企业级Web应用开发和移动应用开发。
作者: 冷月葬花魂    时间: 2015-1-24 06:42
是一种使网页(Web Page)由静态(Static)转变为动态(Dynamic)的语言
作者: 分手快乐    时间: 2015-1-24 13:26
在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。
作者: 第二个灵魂    时间: 2015-1-31 22:21
应用在电视机、电话、闹钟、烤面包机等家用电器的控制和通信。由于这些智能化家电的市场需求没有预期的高,Sun公司放弃了该项计划。随着1990年代互联网的发展
作者: 谁可相欹    时间: 2015-2-1 09:54
有时间再研究一下MVC结构(把Model-View-Control分离开的设计思想)
作者: 柔情似水    时间: 2015-2-2 16:32
一直感觉JAVA很大,很杂,找不到学习方向,前两天在网上找到了这篇文章,感觉不错,给没有方向的我指了一个方向,先不管对不对,做下来再说。
作者: 爱飞    时间: 2015-2-4 20:31
至于JDBC,就不用我多说了,你如果用java编过存取数据库的程序,就应该很熟悉。还有,如果你要用Java编发送电子邮件的程序,你就得看看Javamail 了。
作者: 再见西城    时间: 2015-2-10 06:40
让你能够真正掌握接口或抽象类的应用,从而在原来的Java语言基础上跃进一步,更重要的是,设计模式反复向你强调一个宗旨:要让你的程序尽可能的可重用。
作者: 莫相离    时间: 2015-2-26 17:39
Jive的资料在很多网站上都有,大家可以找来研究一下。相信你读完代码后,会有脱胎换骨的感觉。遗憾的是Jive从2.5以后就不再无条件的开放源代码,同时有licence限制。不过幸好还有中国一流的Java程序员关注它,外国人不开源了,中国人就不能开源吗?这里向大家推荐一个汉化的Jive版本—J道。Jive(J道版)是由中国Java界大名 鼎鼎的banq在Jive 2.1版本基础上改编而成, 全中文,增加了一些实用功能,如贴图,用户头像和用户资料查询等,而且有一个开发团队在不断升级。你可以访问banq的网站
作者: 小魔女    时间: 2015-3-8 16:21
所以现在应用最广泛又最好学的就是J2EE了。 J2EE又包括许多组件,如Jsp,Servlet,JavaBean,EJB,JDBC,JavaMail等。要学习起来可不是一两天的事。那么又该如何学习J2EE呢?当然Java语法得先看一看的,I/O包,Util包,Lang包你都熟悉了吗?然后再从JSP学起。
作者: 不帅    时间: 2015-3-16 04:55
Java 编程语言的风格十分接近C、C++语言。
作者: 山那边是海    时间: 2015-3-22 20:10
Java是一种计算机编程语言,拥有跨平台、面向对java




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2