java实现gif动画效果(java显示动态图片)
发布时间:2023-10-19 07:56:38
就是每隔一定的时间显示一张图片,全部图片文件位于:“工作空间\项目名称\bin\动态图\花好月圆\”文件夹下。文件名类似:1001.jpg,1002.jpg,一直到1016.jpg:
/*
* Donttai.java
*
* Created on __DATE__, __TIME__
*/
package 动态图;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.image.ImageObserver;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
/**
*
* @author __USER__
*/
public class Donttai extends javax.swing.JFrame implements Runnable
{
/** Creates new form Donttai */
public Donttai()
{
initComponents();
}
//String path = "E:\\Workspaces\\MyEclipse_9.0\\20120731\\bin\\动态图\\1\\10";
//Java默认文件路径是项目的根目录,所以要手动加上bin及其以下的路径
String path="bin/动态图/花好月圆/10";
int idx = 1;
public void paint(Graphics g)
{
ImageObserver imageObserver = new ImageObserver()
{
@Override
public boolean imageUpdate(Image img, int infoflags, int x, int y,
int width, int height)
{
// TODO Auto-generated method stub
return false;
}
};
try
{
//g.drawImage(ImageIO.read(new File(Donttai.class.getResource("1.png").toString())), 20, 20, imageObserver);
String temp = "";
if (idx <= 9)
temp = path + "0" + idx + ".jpg";
else if (idx >= 10)
{
temp = path + idx + ".jpg";
}
g.drawImage(ImageIO.read(new File(temp)), 100, 50, 400, 300,
imageObserver);
}
catch (IOException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/** This method is called from within the constructor to
* initialize the form.
* WARNING: Do NOT modify this code. The content of this method is
* always regenerated by the Form Editor.
*/
//GEN-BEGIN:initComponents
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents()
{
jButton1 = new javax.swing.JButton();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
jButton1.setText("jButton1");
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(
getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(layout.createParallelGroup(
javax.swing.GroupLayout.Alignment.LEADING).addGroup(
javax.swing.GroupLayout.Alignment.TRAILING,
layout.createSequentialGroup()
.addContainerGap(483, Short.MAX_VALUE)
.addComponent(jButton1).addGap(35, 35, 35)));
layout.setVerticalGroup(layout.createParallelGroup(
javax.swing.GroupLayout.Alignment.LEADING).addGroup(
layout.createSequentialGroup().addGap(37, 37, 37)
.addComponent(jButton1)
.addContainerGap(392, Short.MAX_VALUE)));
pack();
}// </editor-fold>
//GEN-END:initComponents
/**
* @param args the command line arguments
*/
public static void main(String args[])
{
// java.awt.EventQueue.invokeLater(new Runnable()
// {
// public void run()
// {
// new Donttai().setVisible(true);
//
// }
// });
Donttai donttai = new Donttai();
donttai.setVisible(true);
donttai.run();
}
//GEN-BEGIN:variables
// Variables declaration - do not modify
private javax.swing.JButton jButton1;
// End of variables declaration//GEN-END:variables
@Override
public void run()
{
// TODO Auto-generated method stub
while (true)
{
repaint();
if (idx < 16)
idx++;
else
idx = 1;
try
{
Thread.sleep(60);
}
catch (InterruptedException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}


猜你喜欢
- 方法重载概述方法重载指同一个类中定义的多个方法之间的关系,满足下列条件的多个方法互相构成重载* 多个方法在同一个类中* 多个放方法具有相同方
- 本文实例讲述了C#创建、读取和修改Excel的方法。分享给大家供大家参考。具体如下:windows下我们可以通过 Jet OLE DB访问E
- 一、this关键字this是一个引用,它指向自身的这个对象。看内存分析图:假设我们在堆内存new了一个对象,在这个对象里面你想象着他有一个引
- TabControl控件中TabPage选项卡切换时的触发事件选项卡切换触发的是TabControl控件的SelectedIndexChan
- 单例模式单例模式顾名思义就是单一的实例,涉及到一个单一的类,该类负责创建自己的对象,同时确保只有一个对象被创建,并且提供一种可以访问这个对象
- 线程安全当多个线程访问某个类时,不管运行时环境采用何种调度方式或者这些进程将如何交替执行,并且在主调代码中不需要任何额外的同步或协调,这个类
- Android安全加密专题文章索引Android安全加密:对称加密Android安全加密:非对称加密Android安全加密:消息摘要Mess
- 前言众所周知,encache是现在最流行的java开源缓存框架,配置简单,结构清晰,功能强大。通过注解 @Cacheable 可以快速添加方
- 目录Demo展示介绍计时器功能Unity计时器Demo展示介绍游戏中有非常多的计时功能,比如:各种cd,以及需要延时调用的方法;一般实现有一
- 一、业务需求实现省份与城市的二级联动二、实现效果三、代码实现1. province_city.jsp前端界面实现<%@ p
- Android有三个基础组件Activity,Service和BroadcastReceiver,他们都是依赖Intent来启动。本文介绍的
- 前言大家都知道,equals和hashcode是java.lang.Object类的两个重要的方法,在实际应用中常常需要重写这两个方法,但至
- 创建类模式主要关注对象的创建过程,将对象的创建过程进行封装,使客户端可以直接得到对象,而不用去关心如何创建对象。创建类模式有5种,分别是:
- 具体代码如下所示:public class Student { private String id; private
- 最近在做项目的时候有用到对两个集合中的元素进行对比求其交集的情况,因为涉及到的数据量比较大,所以在进行求两个集合中元素交集的时候,就应该考虑
- 一、定时任务的使用场景和常见的定时任务某个时间定时处理某个任务、发邮件、短信、消息提醒、订单通知、统计报表等定时任务划分单机定时任务:单机的
- Nacos 的部署,我使用的时docker 部署(单机模式 Mysql),官网文档:https://nacos.io/zh-cn/docs/
- 首先创建一个工具类import android.annotation.TargetApi;import android.app.Activi
- C#调用c++dll文件是一件很麻烦的事情,首先面临的是数据类型转换的问题,相信经常做c#开发的都和我一样把学校的那点c++底子都忘光了吧(
- 当我们打开app的时候是不是会有一瞬间的白屏然后再进入主活动,虽然这并不会造成什么不好的后果,但是感觉用户体验就不是很好。像网易云音乐等等