java 图片动画_java在窗口中添加图片做动画,怎么一闪一闪的?
該樓層疑似違規已被系統折疊?隱藏此樓查看此樓
視頻來自:優酷
在java中添加圖片做動畫效果,怎么一閃一閃的運動啊?怎樣才能讓它不閃的連續運動呢?
下面是代碼,代碼項目project里有兩個類,一個是LoadImg,一個是Entry
圖片放在src下的一個新建文件夾image里,調試的時候自己可以隨便找個圖片,在src下新建一個文件夾命名image,然后把圖片房里去就行。
第一個Entry類
package project;
import java.awt.Canvas;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.Toolkit;
import java.awt.event.ComponentAdapter;
import java.awt.event.ComponentEvent;
import java.awt.event.ContainerAdapter;
import java.awt.event.ContainerEvent;
import javax.swing.JFrame;
import javax.swing.JPanel;
import org.omg.CORBA.PUBLIC_MEMBER;
public class Entry extends Canvas{
Image img = LoadImg.getImage("image/ball.png");
// "image/ball.png"圖片放在src下的一個新建文件夾image里
private double degree = Math.PI/4;
private double x = 20,y = 70;
Entry() {
new MyThread().start();
}
public void paint(Graphics g){
g.drawImage(img, (int)x, (int)y, null);
x += 10*Math.cos(degree);
y += 10*Math.sin(degree);
if(x>=660 || x<=0)
degree = Math.PI - degree;
if(y>=440 || y<0)
degree = -degree;
}
class MyThread extends Thread{
public void run() {
while(true){
repaint();
try {
Thread.sleep(40);
} catch (InterruptedException e) {
}
}
}
}
public static void main(String[] args) {
JFrame frame = new JFrame();
frame.setSize(800, 600);
frame.setLocation(100, 50);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
Entry canvas = new Entry();
canvas.setSize(frame.getWidth(), frame.getHeight());
frame.add(canvas);
}
}
第二個LoadImg類
package project;
import java.awt.Image;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.net.URL;
import javax.imageio.ImageIO;
public class LoadImg {
private LoadImg(){}
public static Image getImage(String path){
URL u = Entry.class.getClassLoader().getResource(path);
Image img = null;
try {
img = ImageIO.read(u);
} catch (IOException e) {
e.printStackTrace();
}
return img;
}
}
總結
以上是生活随笔為你收集整理的java 图片动画_java在窗口中添加图片做动画,怎么一闪一闪的?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 网贷可以不还吗
- 下一篇: 马斯克感谢中国 上海特斯拉二期项目启动