java动态图片_java实现gif效果(java显示动态图片)

本文介绍了一个Java Swing应用程序,用于创建动态图像展示。代码通过`javax.swing.JFrame`扩展并实现了`Runnable`接口,以实现帧动画效果。程序从指定路径加载图片,并使用`ImageObserver`更新图像,每60毫秒切换到下一张图片,形成循环播放。源代码中包含了路径设置、异常处理以及组件初始化等细节。
摘要由CSDN通过智能技术生成

0235ceb0a590ab703be40d0598e7bc5d.gif

/ *

* Donttai.java

*

*创建于__DATE __,__ TIME __

* /

包装;

导入java.awt.Graphics;

导入java.awt.Image;

导入java.awt.image.ImageObserver;

导入java.io.File;

import java.io.IOException;

导入javax.imageio.ImageIO;

/ **

*

* @author __USER __

* /

公共类Donttai扩展了javax.swing.JFrame实现Runnable

{

/ **创建新表格Donttai * /

公共Donttai()

{

initComponents();

}

//字符串路径=“ E: \\工作区\\ MyEclipse_9.0 \\ 20120731 \\ bin \\动态地图\\ 1 \\ 10”;

// Java的默认文件路径是项目的根目录swing 动图,因此您必须手动在bin和下面添加路径

字符串路径=“ bin /动态图像/花朵好月亮圈/ 10”;

f89aecbb6bef3e8f0754db828c56a588d15d373d2cb44b-iFzFNF_fw658

int idx = 1;

公共无效涂料(图形g)

{

ImageObserver imageObserver =新的ImageObserver()

{

@Override

公共布尔图像更新(图像img,int信息标志,int x,int y,

int宽度,int高度)

{

// TODO自动生成的方法存根

返回假;

}

};

尝试

{

// g.drawImage(ImageIO.read(新文件(Donttai.class.getResource(“ 1.png”). toString())),20、20,imageObserver);

String temp =“”;

如果(idx <= 9)

temp =路径+“ 0” + idx +“ .jpg”;

否则(idx> = 10)

{

temp =路径+ idx +“ .jpg”;

}

g.drawImage(ImageIO.read(新文件(临时)),100,50,400,300,

imageObserver);

}

e675f1da538051f3c9ea03959ce866ab.gif

捕获(IOException e)

{

// TODO自动生成的捕获块

e.printStackTrace();

}

}

/ **此方法从构造函数内部调用到

*初始化表单.

*警告: 请勿修改此代码. 该方法的内容是

*始终由表单编辑器重新生成.

* /

// GEN-BEGIN: initComponents

//

private void initComponents()

{

jButton1 =新的javax.swing.JButton();

setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

jButton1.setText(“ jButton1”);

javax.swing.GroupLayout布局=新的javax.swing.GroupLayout(

getContentPane());

getContentPane(). setLayout(layout);

layout.setHorizo​​ntalGroup(layout.createParallelGroup(

javax.swing.GroupLayout.Alignment.LEADING).addGroup(

javax.swing.GroupLayout.Alignment.TRAILING,

layout.createSequentialGroup()

.addContainerGap(483,Short.MAX_VALUE)

8116ebb3282633c864a44eb3af1f5416.gif

.addComponent(jButton1).addGap(35,35,35)));

layout.setVerticalGroup(layout.createParallelGroup(

javax.swing.GroupLayout.Alignment.LEADING).addGroup(

layout.createSequentialGroup(). addGap(37swing 动图,37,37)

.addComponent(jButton1)

.addContainerGap(392,Short.MAX_VALUE)));

pack();

} // editor-fold>

// GEN-END: initComponents

/ **

* @param args命令行参数

* /

public static void main(字符串args [])

{

// java.awt.EventQueue.invokeLater(新的Runnable()

// {

// public void run()

// {

//新的Donttai(). setVisible(true);

//

//}

//});

Donttai donttai =新Donttai();

donttai.setVisible(true);

donttai.run();

}

214defb5b61f5685788c369912cd0c5b.gif

// GEN-BEGIN: 变量

//变量声明-请勿修改

private javax.swing.JButton jButton1;

//变量声明的结束// GEN-END: 变量

@Override

公共无效运行()

{

// TODO自动生成的方法存根

while(true)

{

repaint();

如果(idx <16)

idx ++;

其他

idx = 1;

尝试

{

Thread.sleep(60);

}

catch(InterruptedException e)

{

// TODO自动生成的捕获块

e.printStackTrace();

}

}

}

}

本文来自电脑杂谈,转载请注明本文网址:

http://www.pc-fly.com/a/jisuanjixue/article-155158-1.html

Java在窗口上加载显示GIF动画图像,将多个独立的GIF图像串联在一起显示,形成GIF特有的动画形式。主要代码如下:   ImageIcon[] images; //用于动画的图标数组   Timer animationTimer;   int currentImage = 0; //当前图像编号   int delay = 500; //图像切换延迟   int width; //图像宽度   int height; //图像高度   public AnimatorIcon() //构造函数   {    setBackground(Color.white);    images = new ImageIcon[2]; //初始化数组    for (int i=0;i   images[i]=new ImageIcon(getClass().getResource("image" i ".gif")); //实例化图标    width = images[0].getIconWidth(); //初始化宽度值    height = images[0].getIconHeight(); //初始化高度值   }   public void paintComponent(Graphics g) { //重载组件绘制方法    super.paintComponent(g); //调用父类函数    images[currentImage].paintIcon(this,g,70,0); //绘制图标    currentImage=(currentImage 1)%2; //更改当前图像编号   }   public void actionPerformed(ActionEvent actionEvent) {    repaint();   }   public void startAnimation() { //开始动画    if (animationTimer==null) {    currentImage=0;    animationTimer=new Timer(delay, this); //实例化Timer对象    animationTimer.start(); //开始运行    } else if (!animationTimer.isRunning()) //如果没有运行    animationTimer.restart(); //重新运行   }   public void stopAnimation() {    animationTimer.stop(); //停止动画   }   public static void main(String args[]) {    AnimatorIcon animation = new AnimatorIcon(); //实例化动画图标    JFrame frame = new JFrame("动画图标"); //实例化窗口对象    frame.getContentPane().add(animation); //增加组件到窗口上    frame.setSize(200, 100); //设置窗口尺寸    frame.setVisible(true); //设置窗口可视    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //关闭窗口时退出程序    animation.startAnimation(); //开始动画
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值