快速业务通道

[JAVA100例]023、滑动杆 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-21

[JAVA100例]023、滑动杆

时间:2011-01-09

import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.event.*; /** * <p>Title: 滑动杆演示</p> * <p>Description: 使用滑动杆控制定时器,来控制图片的播放速度</p> * <p>Copyright: Copyright (c) 2003</p> * <p>Filename: SliderDemo.java</p> * @version 1.0 */ public class SliderDemo extends JPanel             implements ActionListener,                   WindowListener,                   ChangeListener {   //设置图片的参数   static final int FPS_MIN = 0; //设置最小值   static final int FPS_MAX = 30; //设置最大值   static final int FPS_INIT = 15; //初始数值   int frameNumber = 0;   int NUM_FRAMES = 14;   ImageIcon[] images = new ImageIcon[NUM_FRAMES];   int delay;   Timer timer;   boolean frozen = false; //这个标签用来显示这只小狗   JLabel picture; public SliderDemo() {     setLayout(new BoxLayout(this, BoxLayout.PAGE_AXIS)); delay = 1000 / FPS_INIT; //信息提示标签     JLabel sliderLabel = new JLabel("调整滑动杆,改变播放速度!", JLabel.CENTER);     sliderLabel.setAlignmentX(Component.CENTER_ALIGNMENT); //创建一个滑动杆,定义了最小值和最大值以及初始值     JSlider framesPerSecond = new JSlider(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 = new JLabel();     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 = new Timer(delay, this);     timer.setInitialDelay(delay * 7); //在每轮循环停顿时间     timer.setCoalesce(true);//设置重复循环   } /** *<br>方法说明:添加一个窗体监听 *<br>输入参数: *<br>返回类型: */   void addWindowListener(Window w) {     w.addWindowListener(this);   }   public void windowIconified(WindowEvent e) {     stopAnimation();   }   public void windowDeiconified(WindowEvent e) {     startAnimation();   }   public void windowOpened(WindowEvent e) {}   public void

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号