• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >Java > JFileChooser实现对选定文件夹内图片自动播放和暂停播放实例代码

JFileChooser实现对选定文件夹内图片自动播放和暂停播放实例代码

作者:xiaoqiang1001 字体:[增加 减小] 来源:互联网 时间:2017-05-28

xiaoqiang1001 通过本文主要向大家介绍了jfilechooser,jfilechooser用法,java jfilechooser,jfilechooser保存文件,java中jfilechooser等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

本案例通过使用JFileChooser实现对选定文件夹内图片实现自动播放和暂停播放

代码如下,如有不合适的地方 还请指教

package com.xiaoqiang;
import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JLabel;
import java.util.Timer;
import java.util.TimerTask;
/**
 * 本例通过JFileChooser选择文件夹 
 * 对文件夹内图片进行滚动播放 用到TimerTask以及ActionListener
 * 详细解释JFileChooser使用及图片滚动过程需要的思维
 * @author xiaoqiang
 * @timer 2017年4月27日  
 */
public class PlayPicture extends JFrame implements ActionListener{
  private File fileDirectory;
  private JFileChooser fileChooser;
  private Container con;
  private JButton nextPic;
  private JButton previousPic;
  private JButton showPic;
  private JButton beginPlayPic;
  private JButton stopPlayPic;
  private JLabel picIcon;
  private String[] fileName;
  private String parentPath;
  private static boolean play;
  private static PlayPicture playPicture;
  private int i=-1;
  private PlayPicture(){
    super("图片自动播放器");
    this.draw();
  }
  /**
   * 获取单例类 
   * 用于TimerTask执行时调用同一对象
   * @return Object
   */
  public static Object getInstance(){
    if(playPicture==null)
      playPicture=new PlayPicture();
    return playPicture;
  }
  /**
   * 画图方法 将GUI画出来
   * 因为练习图片滚动和JFileChooser
   * 所以GUI比较难看
   */
  public void draw(){
    con=this.getContentPane();
    con.setLayout(new FlowLayout());
    showPic=new JButton("请选择目录");
    con.add(showPic);
    showPic.addActionListener(this);
    picIcon=new JLabel("请选择目录展示图片");
    con.add(picIcon);
    previousPic=new JButton("上一张");
    con.add(previousPic);
    previousPic.addActionListener(this);
    nextPic=new JButton("下一张");
    con.add(nextPic);
    nextPic.addActionListener(this);
    beginPlayPic=new JButton("开始自动播放");
    stopPlayPic=new JButton("停止自动播放");
    con.add(beginPlayPic);
    con.add(stopPlayPic);
    beginPlayPic.addActionListener(this);
    stopPlayPic.addActionListener(this);
    this.setLocation(550, 200);
    this.setSize(900,700);
    this.setVisible(true);
  }
  /**
   * 执行自动播放效果 
   * 注意使用的单例类
   * 暂停的话设置单例类静态变量
   * play为false
   */
  public void automatic(){
    TimerTask task = new TimerTask() { 
      @Override 
      public void run() {
        ((PlayPicture) PlayPicture.getInstance()).NextPicture();
        if(!((PlayPicture)PlayPicture.getInstance()).play){
          ((PlayPicture) PlayPicture.getInstance()).previousPicture();
        }
      } 
    }; 
    Timer timer = new Timer(); 
    long delay = 0; 
    //intevalPeriod为秒数
    long intevalPeriod = 5 * 1000; 
    timer.scheduleAtFixedRate(task, delay, intevalPeriod);
  }
  @Override
  public void actionPerformed(ActionEvent e) {
    if(e.getSource().equals(showPic)){
      //设置G盘为默认打开路径
      fileChooser=new JFileChooser(new File("G:"));
      /*
       * 设置可以选择文件夹,默认为只允许选择文件
       * 
       * DIRECTORIES_ONLY 指示仅显示目录。
       * FILES_AND_DIRECTORIES 指示显示文件和目录
       * FILES_ONLY 指示仅显示文件。(默认)
       * 
       */
      fileChooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
      //把JFileChooser释放
      fileChooser.showOpenDialog(this);
      fileDirectory=fileChooser.getSelectedFile();
      i=-1;//每次打开都将i重置 方便播放文件
      parentPath=fileDirectory.getAbsolutePath();
      fileName=fileDirectory.list();
      if(hasPicture()){
        this.NextPicture();
        setBottonEnabled(true);
      }else{
        picIcon.setText("该目录没有图片哦");
        picIcon.setIcon(null);
        setBottonEnabled(false);
      }
    }else if(e.getSource().equals(nextPic)){
      this.NextPicture();
    }else if(e.getSource().equals(previousPic)){
      this.previousPicture();
    }else if(e.getSource().equals(beginPlayPic)){
      this.automatic();
      play=true;
    }else if(e.getSource().equals(stopPlayPic)){
      play=false;
    }
  }
  //设置按钮不可用
  private void setBottonEnabled(boolean available){
    nextPic.setEnabled(available);
    previousPic.setEnabled(available);
    beginPlayPic.setEnabled(available);
    stopPlayPic.setEnabled(available);
  }
  //判断所选路径是否有图片
  private boolean hasPicture(){
    for(String s:fileName){
      if(s.matches("(?i).*(.jpg|.png|.gif|.bpm|.jpeg)$"))
        return true;
    }
    return false;
  }
  private void previousPicture(){
    if(i==0){
      i=fileName.length-1;
    }
    while(!fileName[--i].matches("(?i).*(.jpg|.png|.gif|.bpm|.jpeg)$")){
      if(i==-1){
        i=fileName.length;
      }
    }
    System.out.println(i);
    picIcon.setIcon(new ImageIcon(parentPath+"\\"+fileName[i]));
    picIcon.setText("");
  }
  private void NextPicture() {
    if(i==fileName.length-1){
      i=0;
    }
    while(!fileName[++i].matches("(?i).*(.jpg|.png|.gif|.bpm|.jpeg)$")){
      if(i==fileName.length-1){
        i=-1;
      }
    }
    System.out.println(i);
    picIcon.setIcon(new ImageIcon(parentPath+"\\"+fileName[i]));
    picIcon.setText("");
  }
  public static void main(String[] args) {
    //获取实例调用构造方法
    PlayPicture.getInstance();
  }
}
</div>

以上所述是小编给大家介绍的JFileChooser实现对选定文件夹内图片自动播放和暂停播放实例代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • JFileChooser实现对选定文件夹内图片自动播放和暂停播放实例代码
  • JFileChooser实现对选定文件夹内图片自动播放和暂停播放实例代码

相关文章

  • 2017-05-28详解spring面向切面aop拦截器
  • 2017-05-28gson ajax 数字精度丢失问题的解决方法
  • 2017-05-28Java汉字转成汉语拼音工具类
  • 2017-05-28Spring集成Struts与Hibernate入门详解
  • 2017-05-28Java中ArrayList类详细介绍
  • 2017-05-28详解hibernate双向多对多关联映射XML与注解版
  • 2017-05-28JAVA用户自定义事件监听实例代码
  • 2017-05-28spring cglib 与 jdk 动态代理
  • 2017-08-27java 初始化与清理
  • 2017-05-28详解SpringMVC注解版前台向后台传值的两种方式

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • Java可变参数列表详解
    • java 数据的加密与解密普遍实例代码
    • Struts2 文件上传进度条的实现实例代码
    • Java计算两个程序运行时间的实例
    • 错误总结之no appropriate constructor in class
    • 详解Java中接口的定义与实例代码
    • Netty学习教程之Netty与Marshalling结合发送对象
    • SpringBoot创建JSP登录页面功能实例代码
    • javaweb在线支付功能实现代码
    • Java 简化正则表达式的使用

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有