Java swing显示gif

原文地址:http://yanwushu.sinaapp.com/?p=48

Gif是swing中实现动画的常用手段。通常在swing中显示图片最简单的方式是调用JButton或JLabel的setIcon(Icon icon)方法。但是这种做法不适合显示gif图片,因为如果你这样做的话马上会发现gif的刷新率往往非常快,或者应该说太快了,并且相应的cpu利用率会大幅度提高,严重情况下可能导致死机。

为了解决这个问题你可以选择以下两种思路,第一种思路是:将gif图片分割成若干张静态图片,然后通过程序循环显示这些图片,达到动画的目的。比如下图,这当然是不好的做法,麻烦,且工作量巨大。

通过循环显示实现动画

第二种思路是使用代码手动分析gif文件,这一部分本文提供了完整的实现,下载链接在文章末尾。下载包中的GifAnalysis.java是gif的分析工具。Gif.java则是呈现gif的一个参考。

如果你希望了解GifAnalysis.java的实现原理,那么需要对gif文件格式有一些基础的理解和了解java处理gif的相关接口,那么请参考末尾的链接,这是一篇译文,可能有些不通顺,有兴趣的人可以找一下相关外文文档。

实现原理:http://www.blogjava.net/javagui/archive/2008/12/07/javafx.html

代码下载:http://pan.baidu.com/s/1kT40wPT

如果资源失效,请通知[email protected]

时间: 2024-10-20 05:19:47

Java swing显示gif的相关文章

在运行myeclipse10注册机时,显示找不到com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel这个包

在win7下安装MyEclipse10.安装完成之后运行注册机,总是提示classnotfond显示找不到com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel这个包. 查看了一下没有配置环境变量,并且JDK版本不太对,就换了个1.6.1的jdk-6u10-rc2-bin-b32-windows-i586-p-12_sep_2008安装版的,然后重新配置环境变量,运行注册机OK一切搞定.

java 读取显示txt内容(Swing)

java 读取显示txt内容(Swing),JTextArea public class TxtSwing extends JFrame { private JTextArea textAreaOutput; public TxtSwing() throws IOException { super("txt"); setDefaultCloseOperation(EXIT_ON_CLOSE); getContentPane().setLayout(new java.awt.FlowLa

Java Swing 编程 JComboBox 显示不全问题。

最近在做Java Swing编程一个小例子.然后遇到JComboBox 宽度固定,而下拉列表比较长,导致显示不全的问题. 解决的思路想到两种,1:下拉列表当显示不全的时候,换行显示.2:在下拉列表停几秒后,悬浮框提示信息. 第一种找了很多方法都没有成功.因此选择了第二种,具体解决如下: 1.提示框类. import java.awt.Component; import javax.swing.JComboBox; import javax.swing.JList; import javax.sw

Atitit。D&D drag&drop拖拽功能c#.net java swing的对比与实现总结

Atitit.D&D drag&drop拖拽功能c#.net java swing的对比与实现总结 1. 实现一个D&D操作一般包括三个步骤: 1 2. .net黑头的拖曳机制.必须有DragEnter事件(单独写DragDrop事件是不会具有拖拽功能的) 2 3. ---java黑头的拖曳..必须有DragEnter事件(单独写 Drop事件是不会具有拖拽功能的) 2 4. 代码 3 5. 参考 5 1. 实现一个D&D操作一般包括三个步骤: 首先实现一个拖拽源,这个拖拽

【小型系统】抽奖系统-使用Java Swing完成

一.需求分析 1. 显示候选人照片和姓名. 2. 可以使用多种模式进行抽奖,包括一人单独抽奖.两人同时抽奖.三人同时抽奖. 3. 一个人可以在不同的批次的抽奖中获取一.二.三等奖,但是不能在同一批次抽奖中获取多个奖项. 二.系统总体框架 系统需求比较简单,采用Java Swing技术可以很好的实现,系统的总体类框架图如下 说明:基于主要的三个类就可以完成所需要的功能,Frame有Panel类型与MouseAdapter类型的成员,Panel主要用户存放具体的控件和绘制相应的信息,MouseAda

(转载) Java Swing 之 JScrollPane (滚动面板) 使用方法

1 /** 2 * java swing 之JScrollPane面板 3 * 在设置界面时,可能会遇到在一个较小的容器窗体中显示一个较大部分的内容,这时可以使用 4 * JScrollPane面板,JscrollPane面板是带滚动条的面板,也是一种容器,但是常用于布置单个 5 * 控件,并且不可以使用布局管理器.如果需要在JScrollPane面板中放置多个控件,需要将多个 6 * 控件放置到JPanel 面板上,然后将JPanel面板作为一个整体控件添加到JScrollPane控件上. 7

抽奖系统-使用Java Swing完成

一.需求分析 1. 显示候选人照片和姓名. 2. 可以使用多种模式进行抽奖,包括一人单独抽奖.两人同时抽奖.三人同时抽奖. 3. 一个人可以在不同的批次的抽奖中获取一.二.三等奖,但是不能在同一批次抽奖中获取多个奖项. 二.系统总体框架 系统需求比较简单,采用Java Swing技术可以很好的实现,系统的总体类框架图如下 说明:基于主要的三个类就可以完成所需要的功能,Frame有Panel类型与MouseAdapter类型的成员,Panel主要用户存放具体的控件和绘制相应的信息,MouseAda

Atitit. 悬浮窗口的实现 java swing c# .net c++ js html 的实现

Atitit. 悬浮窗口的实现 java swing c# .net c++ js html 的实现 1. 建立悬浮窗口引用代码 1 1.1. 定义悬浮窗口,设置this主窗口引用,是为了在悬浮窗口中双击可缩小还还原主窗口.以及悬浮窗口右键菜单"显示主界面"中需要还原主窗 1 1.2. //设置主窗口关闭时,先关闭悬浮窗口.and系统托盘 1 1.3. 注入系统托盘图标,退出的时候儿也退出系统托盘 2 2. 悬浮窗口结构and重大的点 2 2.1. 要去掉标题栏: 2 2.2. Opa

JFileChooser (Java Swing提供的文件选择对话框)

JFileChooser() 构造一个指向用户默认目录的 JFileChooser. JFileChooser(File currentDirectory) 使用给定的 File 作为路径来构造一个 JFileChooser. setFileSelectionMode(int mode) 设置 JFileChooser,以允许用户只选择文件.只选择目录,或者可选择文件和目录. mode参数:FILES_AND_DIRECTORIES   指示显示文件和目录. FILES_ONLY