当前位置:首页 » 编程语言 » java动画

java动画

发布时间: 2022-12-20 06:57:35

java中如何加入swf动画

import java.awt.BorderLayout;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;

import chrriis.common.UIUtils;
import chrriis.dj.nativeswing.swtimpl.NativeInterface;
import chrriis.dj.nativeswing.swtimpl.components.JFlashPlayer;

/**
* @author Christopher Deckers
*/
public class SimpleFlashExample extends JPanel {

public SimpleFlashExample() {
super(new BorderLayout());
JFlashPlayer flashPlayer = new JFlashPlayer();
flashPlayer.load(getClass(), "resource/Movement-pointer_or_click.swf");
add(flashPlayer, BorderLayout.CENTER);
}

/* Standard main method to try that test as a standalone application. */
public static void main(String[] args) {
UIUtils.setPreferredLookAndFeel();
NativeInterface.open();
SwingUtilities.invokeLater(new Runnable() {
public void run() {
JFrame frame = new JFrame("DJ Native Swing Test");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().add(new SimpleFlashExample(), BorderLayout.CENTER);
frame.setSize(800, 600);
frame.setLocationByPlatform(true);
frame.setVisible(true);
}
});
NativeInterface.runEventPump();
}

}

Ⅱ java 简单动画 就是将一个圆点从一个坐标移动到另一个坐标即可

一个简单的范例,不明白追问吧

import java.awt.Color;
import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.*;

public class MoveAnimationDemo extends JFrame {

public MoveAnimationDemo() {
this.setContentPane(new AnimationPanel());
this.setSize(500, 500);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
}

/**
* 开始动画
*/
public void startAnimation() {
// 设定初始条件
x = START_X;
y = START_Y;
// 创建计时器
timer = new Timer(DELAY_TIME, new ActionListener() {

@Override
public void actionPerformed(ActionEvent e) {
// 每一次延迟过后,调用一次
x += 1;
y += 1;
repaint();
// 满足结束条件就停止
if (x >= END_X || y >= END_Y) {
timer.stop();
}
}
});
// 开启计时器
timer.start();
}

public static void main(String[] args) {
MoveAnimationDemo demo = new MoveAnimationDemo();
demo.setVisible(true);
demo.startAnimation();
}

private class AnimationPanel extends JPanel {

@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
g.setColor(CIRCLE_COLOR);
g.fillOval(x, y, CIRCLE_SIZE, CIRCLE_SIZE);
}
}

// 圆点颜色
private static final Color CIRCLE_COLOR = Color.RED;
// 圆点大小
private static final int CIRCLE_SIZE = 10;
// 起始位置
private static final int START_X = 50;
private static final int START_Y = 50;
// 终止位置
private static final int END_X = 400;
private static final int END_Y = 400;
// 动画帧之间的延时,每秒60帧
private static final int DELAY_TIME = 1000 / 60;
// 当前位置
private int x;
private int y;
private Timer timer;
}

Ⅲ 2.Java有哪几种常见的实现动画的方法

一: 用多线程播放一组图片, 实现动画片的效果; 类似于逐帧动画,每个图片是动画的一帧

二: 在awt/swing界面里, 可以使用paint方法,去绘制图形,然后用swing提供的Timer或者多线程技术,去刷新绘制的图形

三:在JavaFX里, 本身就支持动画,并且封装了很多动画效果可以直接使用,比如逐帧动画.缩放动画,渐变动画,旋转动画,位置动画等.

强烈推荐使用javaFX来实现动画, 因为javaFX是现代化的图形界面工具,具有简单,强大,组件丰富,跨平台,支持Html5, 支持表格, 支持动画等多种优势

下面是一个javaFX绘制的动态表格

javaFX动态表格

Ⅳ 怎么用java做动画

重写paint方法,来实现将自己定义的图片绘制到组件中,然后启动一个线程来控制paint方法。 示例: ××××××××××××××××××××××××××× 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("1.png").getImage(); } public void paint(Graphics g) { g.drawImage(img,0,0,60,104,i*60,j*104,i*60+60,j*104+104,this); } public void run() { while(true) { while(j { while(i { try { Thread.sleep(300); } catch(Exception e) { } this.repaint(); i++; } j++; i=0; } i=0; j=0; } } } public class test extends JFrame { private MyPanel p; public test() { p=new MyPanel(); this.add(p,BorderLayout.CENTER); this.setBounds(300,200,300,300); this.setTitle("人物行走图"); new Thread(p).start(); this.setVisible(true); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } public static void main(String args[]) { new test(); } } ××××××××××××××××××××××× 将以上源码保存为:test.java,编译,然后下载下面的图片 将下载的图片改名为1.png" target="_blank" >



,然后将其和编译后生成的class文件放在同一文件夹下,然后运行就可以了·~~

Ⅳ java怎么给面板添加旋转动画

你是说 JPanel 吗?两种方法:
添加 JLabel,给 JLabel 添加 ImageIcon,然后放置 JLabel 到 JPanel 上就行了:
JPanel pnl = new JPanel();
......
JLabel lblImage = new JLabel(new ImageIcon("你的文件名")); //创建一个带图片的 JLabel
lblImage.setBounds(0, 0, pnl.getWidth(), pnl.getHeight()); //设置 图片的横坐标、纵坐标、宽、高
pnl.add(lblImage); //放置这个 JLabel 到你的 JPanel 上面
还有一种方法是重写 JPanel 的 paint() 方法:
class YourPanel extends JPanel {
private Image img = Toolkit.getDefaultToolkit().createImage("你的文件名"); //用 Toolkit 的 createImage 方法来创建一个 Image 对象
@Override public void paint (Graphics g) {
super.paint(g);
g.drawImage(img, 0, 0, getWidth(), getHeight()); //绘制图片,第一个参数是 Image 对象,第二个参数是 横坐标,第三个是 纵坐标,第四个是 宽,第五个是 高
}
}
以上你隐式重写也可以:
JPanel pnl = new JPanel() {
@Override public void paint (Graphics g) {
...... //但是要注意这样如果你把 Image 声明成了局部变量或者参数形式,你需要声明成 final
}
}

Ⅵ 求java做动画代码

importjava.awt.Canvas;
importjava.awt.Color;
importjava.awt.Dimension;
importjava.awt.EventQueue;
importjava.awt.Frame;
importjava.awt.Graphics;
importjava.awt.Graphics2D;
importjava.awt.Image;
importjava.awt.RenderingHints;
importjava.awt.event.KeyEvent;
importjava.awt.event.KeyListener;
importjava.awt.event.WindowAdapter;
importjava.awt.event.WindowEvent;
importjava.awt.image.BufferedImage;
importjava.io.File;
importjava.io.IOException;
importjavax.imageio.ImageIO;


{
=1L;
privatestaticbooleanPRESSED=false;
privatestaticintpointX=0;
privatestaticintpointy=200;
privatestaticintRIGHT_GO=0;
privatestaticintLEFT_GO=0;
privatestaticintDIR=0;
privatestaticintANGLE=0;
privatestaticintW=50;
privatestaticintH=60;
private_Canvascanvas=null;

publicTestImage()
{
add(canvas=new_Canvas());
setIgnoreRepaint(true);
requestFocus();
}

publicclass_
{
=1L;
privateBufferedImagebi=null;
privateImagebufferedImage=null;
privateThreadthread=null;
privatelongsleepTime=10;

public_Canvas()
{
try
{
bi=ImageIO.read(newFile("go.png"));
}
catch(IOExceptione)
{}
setBackground(Color.BLACK);
requestFocus();
addKeyListener(newKeyListener()
{
@Override
publicvoidkeyTyped(KeyEvente)
{}

@Override
publicvoidkeyReleased(KeyEvente)
{
RIGHT_GO=0;
PRESSED=false;
}

@Override
publicvoidkeyPressed(KeyEvente)
{
//38403739上下左右
DIR=e.getKeyCode();
PRESSED=true;
}
});
}

@Override
publicvoidpaint(Graphicsg)
{
Graphics2Dg2d=(Graphics2D)g;
g2d.setRenderingHint(RenderingHints.KEY_INTERPOLATION,RenderingHints.VALUE_INTERPOLATION_BILINEAR);
g2d.drawImage(rotateImage(bi.getSubimage(RIGHT_GO,LEFT_GO,W,H),ANGLE,true),pointX,pointy,W,H,
this);
g2d.dispose();
}

@Override
publicvoipdate(Graphicsg)
{
if(null==bufferedImage)
{
bufferedImage=createImage(getWidth(),getHeight());
}
GraphicsbufferedG=bufferedImage.getGraphics();
bufferedG.clearRect(0,0,getWidth(),getHeight());
paint(bufferedG);
bufferedG.dispose();
g.drawImage(bufferedImage,0,0,this);
g.dispose();
}

publicvoidstart()
{
thread=newThread(this);
thread.setName("TestImage");
thread.setPriority(Thread.MIN_PRIORITY);
thread.start();
}

publicsynchronizedvoidstop()
{
thread=null;
notify();
}

@Override
publicvoidrun()
{
Threadme=Thread.currentThread();
while(thread==me&&!isShowing()||getSize().width==0)
{
try
{
Thread.sleep(555);
}
catch(InterruptedExceptione)
{
return;
}
}
while(thread==me&&isShowing())
{
if(PRESSED)
{
try
{
if(DIR==39)
{
RIGHT_GO=RIGHT_GO+50;
LEFT_GO=0;
pointX=pointX+1;
if(pointX>420)
{
ANGLE=90;
pointX--;
pointy--;
W=60;
H=50;
}
if(RIGHT_GO>50)
{
RIGHT_GO=0;
}
}
elseif(DIR==37)
{
pointX=pointX-1;
RIGHT_GO=RIGHT_GO+50;
LEFT_GO=60;
if(pointX<0)
{
ANGLE=-90;
pointX++;
pointy--;
W=60;
H=50;
}
if(RIGHT_GO>50)
{
RIGHT_GO=0;
}
}
elseif(DIR==38)
{
W=50;
H=60;
pointy=150;
ANGLE=0;
RIGHT_GO=100;
}
elseif(DIR==40)
{
W=50;
H=60;
ANGLE=0;
pointy=200;
RIGHT_GO=0;
}
Thread.sleep(sleepTime);
repaint();
}
catch(InterruptedExceptione)
{
break;
}
}
else
{
RIGHT_GO=RIGHT_GO+50;
LEFT_GO=0;
pointX=pointX+1;
if(RIGHT_GO>50)
{
RIGHT_GO=0;
}
if(pointX>500)
{
pointX=0;
}
try
{
Thread.sleep(sleepTime);
repaint();
}
catch(InterruptedExceptione)
{
break;
}
}
}
thread=null;
}
}

/**
*旋转图像为指定角度
*
*@paramdegree
*@return
*/
(finalBufferedImageimage,finalintangdeg,finalbooleand)
{
intw=image.getWidth();
inth=image.getHeight();
inttype=image.getColorModel().getTransparency();
BufferedImageimg;
Graphics2Dgraphics2d;
(graphics2d=(img=newBufferedImage(w,h,type)).createGraphics()).setRenderingHint(
RenderingHints.KEY_INTERPOLATION,RenderingHints.VALUE_INTERPOLATION_BILINEAR);
graphics2d.rotate(d?-Math.toRadians(angdeg):Math.toRadians(angdeg),w/2,h/2);
graphics2d.drawImage(image,0,0,null);
graphics2d.dispose();
returnimg;
}

publicstaticvoidmain(String[]args)
{
EventQueue.invokeLater(newRunnable()
{
@Override
publicvoidrun()
{
finalTestImageti=newTestImage();
ti.setSize(newDimension(500,300));
ti.setLocationRelativeTo(null);
ti.addWindowListener(newWindowAdapter()
{
@Override
publicvoidwindowClosing(WindowEvente)
{
System.exit(0);
}

@Override
publicvoidwindowDeiconified(WindowEvente)
{
ti.canvas.start();
}

@Override
publicvoidwindowIconified(WindowEvente)
{
ti.canvas.stop();
}
});
ti.setResizable(false);
ti.canvas.start();
ti.setVisible(true);
}
});
}
}

Ⅶ JAVA 将照片转视频且有动画效果

感觉这应该是前端页面的功能吧,不是后端做的事情。是让照片以幻灯片的方式呈现,这是纯页面效果,后台只负责推送数据,怎么展现是前端的活了吧。

Ⅷ Java编程实现一个能循环地自左向右移动的动画程序。

效果图

importjava.awt.*;
importjava.awt.event.*;
importjavax.swing.*;

{
JLabeljl;//文字标签
intspeed=2;//移动速度
publicMoveTextFrame(){
jl=newJLabel("文字动画");
jl.setForeground(Color.RED);
add(jl);
setSize(380,100);//窗口大小
setLocationRelativeTo(null);//窗口居中
setResizable(false);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setVisible(true);
//设置定时器,每隔25毫秒,改变一次文字标签的位置
Timert=newTimer(25,newActionListener(){
publicvoidactionPerformed(ActionEvente){
intx=jl.getX()+speed;//计算移动后的位置
if(x>=390){//如果超过就指定像素,就重新从左边开水移动
x=-30;
}
jl.setLocation(x,jl.getY());//更新位置
//repaint();
}
});
t.start();
}
publicstaticvoidmain(String[]args){
newMoveTextFrame();
}
}

热点内容
wemall微商城源码 发布:2025-05-14 22:15:20 浏览:804
隆地优选交易密码是什么 发布:2025-05-14 21:53:23 浏览:94
强酸强碱存储柜 发布:2025-05-14 21:45:16 浏览:565
车辆参数配置包括什么 发布:2025-05-14 21:31:03 浏览:164
怎么引入安卓项目 发布:2025-05-14 21:26:39 浏览:824
游戏辅编程 发布:2025-05-14 21:18:49 浏览:688
三菱plc一段二段密码什么意思 发布:2025-05-14 21:17:16 浏览:528
电脑开机密码忘记了怎么破解 发布:2025-05-14 21:09:40 浏览:57
pythondict格式 发布:2025-05-14 21:09:38 浏览:887
落叶片拍摄脚本 发布:2025-05-14 20:40:49 浏览:800