import javax.swing.*;
import java.awt.*;
class MyPanel extends JPanel implements Runnable {
private Image img;
private int i=0;
private int j=0;
public MyPanel() {
img=new ImageIcon("c:\\1.png").getImage();
}
public void paint(Graphics g) {
public void run() {
while(true) {
while(j==0) {
while(i==0) {
try {
} catch(Exception e) { }
this.repaint();
i++;
j++;
i=0;
j=0;
public class test extends JFrame {
private MyPanel p;
public test() {
p=new MyPanel();
this.add(p,BorderLayout.CENTER);
this.setTitle("人物行走图");
new Thread(p).start();
this.setVisible(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
public static void main(String args[]) {
new test();
你把那个图片放在c盘下就行了
,然后将其和编译后生成的class文件放在同一文件夹下,然后运行就可以了-~~
java可以做动画,但是不适合做动画.每个东西都有其使用的领域.
好比java适合写应用程序,C适合写嵌入式程序,flash适合做动画,
import?java.awt.Canvas;
import?java.awt.Color;
import?java.awt.Dimension;
import?java.awt.EventQueue;
import?java.awt.Frame;
import?java.awt.Graphics;
import?java.awt.Image;
import?java.awt.RenderingHints;
import?java.awt.event.KeyEvent;
import?java.awt.event.KeyListener;
import?java.awt.event.WindowAdapter;
import?java.awt.event.WindowEvent;
import?java.awt.image.BufferedImage;
import?java.io.File;
import?java.io.IOException;
import?javax.imageio.ImageIO;
public?class?TestImage?extends?Frame
{
private?static?final?long?serialVersionUID?=?1L;
private?static?boolean?PRESSED?=?false;
private?static?int?pointX?=?0;
private?static?int?RIGHT_GO?=?0;
private?static?int?LEFT_GO?=?0;
private?static?int?DIR?=?0;
private?static?int?ANGLE?=?0;
private?_Canvas?canvas?=?null;
public?TestImage?()
add?(canvas?=?new?_Canvas?());
setIgnoreRepaint?(true);
requestFocus?();
public?class?_Canvas?extends?Canvas?implements?Runnable
private?BufferedImage?bi?=?null;
private?Image?bufferedImage?=?null;
private?Thread?thread?=?null;
private?long?sleepTime?=?10;
public?_Canvas?()
try
bi?=?ImageIO.read?(new?File?("go.png"));
catch?(IOException?e)
{}
setBackground?(Color.BLACK);
addKeyListener?(new?KeyListener?()
@Override
public?void?keyTyped?(?KeyEvent?e?)
public?void?keyReleased?(?KeyEvent?e?)
RIGHT_GO?=?0;
PRESSED?=?false;
public?void?keyPressed?(?KeyEvent?e?)
DIR?=?e.getKeyCode?();
PRESSED?=?true;
});
public?void?paint?(?Graphics?g?)
this);
public?void?update?(?Graphics?g?)
if?(null?==?bufferedImage)
bufferedImage?=?createImage?(getWidth?(),?getHeight?());
Graphics?bufferedG?=?bufferedImage.getGraphics?();
bufferedG.clearRect?(0,?0,?getWidth?(),?getHeight?());
paint?(bufferedG);
bufferedG.dispose?();
g.drawImage?(bufferedImage,?0,?0,?this);
g.dispose?();
public?void?start?()
thread?=?new?Thread?(this);
thread.setName?("TestImage");
thread.setPriority?(Thread.MIN_PRIORITY);
thread.start?();
public?synchronized?void?stop?()
thread?=?null;
notify?();
public?void?run?()
Thread?me?=?Thread.currentThread?();
while?(thread?==?me?!isShowing?()?||?getSize?().width?==?0)
catch?(InterruptedException?e)
return;
while?(thread?==?me?isShowing?())
if?(PRESSED)
LEFT_GO?=?0;
pointX?=?pointX?+?1;
pointX--;
pointy--;
pointX?=?pointX?-?1;
if?(pointX?0)
pointX++;
ANGLE?=?0;
RIGHT_GO?=?100;
Thread.sleep?(sleepTime);
repaint?();
break;
else
pointX?=?0;
/**
*?旋转图像为指定角度
*?
*/
public?static?BufferedImage?rotateImage?(?final?BufferedImage?image,?final?int?angdeg,?final?boolean?d?)
int?w?=?image.getWidth?();
int?h?=?image.getHeight?();
int?type?=?image.getColorModel?().getTransparency?();
BufferedImage?img;
RenderingHints.KEY_INTERPOLATION,?RenderingHints.VALUE_INTERPOLATION_BILINEAR);
return?img;
public?static?void?main?(?String[]?args?)
EventQueue.invokeLater?(new?Runnable?()
final?TestImage?ti?=?new?TestImage?();
ti.setLocationRelativeTo?(null);
ti.addWindowListener?(new?WindowAdapter?()
public?void?windowClosing?(?WindowEvent?e?)
System.exit?(0);
public?void?windowDeiconified?(?WindowEvent?e?)
ti.canvas.start?();
public?void?windowIconified?(?WindowEvent?e?)
ti.canvas.stop?();
ti.setResizable?(false);
ti.setVisible?(true);
以上就是土嘎嘎小编为大家整理的java编写动画代码相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!