java實現(xiàn)動態(tài)圖片效果
更新時間:2021年03月22日 08:49:32 作者:點丶錯了。。
這篇文章主要為大家詳細介紹了java實現(xiàn)動態(tài)圖片效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
本文實例為大家分享了java實現(xiàn)動態(tài)圖片效果,供大家參考,具體內(nèi)容如下
源碼
package forGame;
import javax.imageio.ImageIO;
import javax.swing.*;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
//動態(tài)效果
public class Demo_1 extends JFrame{
//背景
private BufferedImage bufferedImage;
//窗體大小
private int width;
private int height;
//要繪制的動態(tài)照片數(shù)組
private BufferedImage[] images = new BufferedImage[4];
//要繪制動態(tài)圖中的那張
private BufferedImage image;
//初始化
{
if(bufferedImage == null){
try {
bufferedImage = ImageIO.read(new File("src\\image\\背景.png"));
for(int i = 1;i < images.length + 1;i ++)
images[i - 1] = ImageIO.read(new File("src\\image\\大飛機爆炸" + i + ".png"));
} catch (IOException e) {
e.printStackTrace();
}
}
width = bufferedImage.getWidth();
height = bufferedImage.getHeight();
image = images[0];
}
public Demo_1(){
super("動態(tài)測試");
//設(shè)置窗口
setSize(width,height);
setLocationRelativeTo(null);
setResizable(false);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
//啟動線程
MyThread myThread = new MyThread();
myThread.start();
}
//雙緩沖繪制解決圖片閃爍問題
@Override
public void paint(Graphics g) {
Image image = this.createImage(width,height);
Graphics gImage = image.getGraphics();
gImage.setColor(gImage.getColor());
gImage.fillRect(0,0,width,height);
super.paint(gImage);
//繪制背景
gImage.drawImage(bufferedImage,0 ,0 ,null );
//繪制動態(tài)圖片
gImage.drawImage(this.image,0 ,100 ,null );
//最后繪制緩沖后的圖片
g.drawImage(image,0 ,0 , null);
}
private int num = 0;//images數(shù)組內(nèi)圖片索引
//線程內(nèi)部類
private class MyThread extends Thread{
@Override
public void run() {
while(true) {
if(num <= 3) {
image = images[num ++];
}
else
num = 0;
repaint();
try {
sleep(100);//每隔100毫秒重繪一次
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
public static void main(String[] args) {
new Demo_1();
}
}
效果圖

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
SpringBoot?Knife4j框架&Knife4j的顯示內(nèi)容的配置方式
Knife4j框架是基于Swagger2開發(fā)的在線API文檔生成工具,主要功能包括自動生成API文檔、接口文檔展示、接口測試工具、接口權(quán)限控制和在線調(diào)試,該框架支持通過注解自動生成詳細的接口文檔,開發(fā)者可以直接在文檔界面進行接口測試和調(diào)試2024-09-09
Spring Security動態(tài)權(quán)限的實現(xiàn)方法詳解
這篇文章主要和小伙伴們簡單介紹下 Spring Security 中的動態(tài)權(quán)限方案,以便于小伙伴們更好的理解 TienChin 項目中的權(quán)限方案,感興趣的可以了解一下2022-06-06
Java struts2 validate用戶登錄校驗功能實現(xiàn)
這篇文章主要為大家詳細介紹了Java struts2 validate用戶登錄校驗功能實現(xiàn)的具體步驟,具有一定的參考價值,感興趣的小伙伴們可以參考一下2016-05-05
JAVA中讀取文件(二進制,字符)內(nèi)容的幾種方法總結(jié)
本篇文章主要介紹了JAVA中讀取文件(二進制,字符)內(nèi)容的方法總結(jié),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-02-02
Springboot通過lucene實現(xiàn)全文檢索詳解流程
Lucene是一個基于Java的全文信息檢索工具包,它不是一個完整的搜索應(yīng)用程序,而是為你的應(yīng)用程序提供索引和搜索功能。Lucene 目前是 Apache Jakarta 家族中的一個開源項目,也是目前最為流行的基于 Java 開源全文檢索工具包2022-06-06

