首页 > 后端开发 > 正文

Java中如何加入swf动画

2024-06-23 07:21:01 | 我爱编程网

Java中如何加入swf动画很多朋友对这方面很关心,我爱编程网整理了相关文章,供大家参考,一起来看一下吧!

本文目录一览:

Java中如何加入swf动画

求java做动画代码

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.Graphics2D;

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 pointy = 200;

private static int RIGHT_GO = 0;

private static int LEFT_GO = 0;

private static int DIR = 0;

private static int ANGLE = 0;

private static int W = 50;

private static int H = 60;

private _Canvas canvas = null;

public TestImage ()

{

add (canvas = new _Canvas ());

setIgnoreRepaint (true);

requestFocus ();

}

public class _Canvas extends Canvas implements Runnable

{

private static final long serialVersionUID = 1L;

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);

requestFocus ();我爱编程网

addKeyListener (new KeyListener ()

{

@Override

public void keyTyped ( KeyEvent e )

{}

@Override

public void keyReleased ( KeyEvent e )

{

RIGHT_GO = 0;

PRESSED = false;

}

@Override

public void keyPressed ( KeyEvent e )

{

// 38 40 37 39上下左右

DIR = e.getKeyCode ();

PRESSED = true;

}

});

}

@Override

public void paint ( Graphics g )

{

Graphics2D g2d = (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

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 ();

}

@Override

public void run ()

{

Thread me = Thread.currentThread ();

while (thread == me && !isShowing () || getSize ().width == 0)

{

try

{

Thread.sleep (555);

}

catch (InterruptedException e)

{

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;

}

}

else if (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;

}

}

else if (DIR == 38)

{

W = 50;

H = 60;

pointy = 150;

ANGLE = 0;

RIGHT_GO = 100;

}

else if (DIR == 40)

{

W = 50;

H = 60;

ANGLE = 0;

pointy = 200;

RIGHT_GO = 0;

}

Thread.sleep (sleepTime);

repaint ();

}

catch (InterruptedException e)

{

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 (InterruptedException e)

{

break;

}

}

}

thread = null;

}

}

/**

* 旋转图像为指定角度

*

* @param degree

* @return

*/

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;

Graphics2D graphics2d;

( graphics2d = ( img = new BufferedImage (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 ();

return img;

}

public static void main ( String[] args )

{

EventQueue.invokeLater (new Runnable ()

{

@Override

public void run ()

{

final TestImage ti = new TestImage ();

ti.setSize (new Dimension (500, 300));

ti.setLocationRelativeTo (null);

ti.addWindowListener (new WindowAdapter ()

{

@Override

public void windowClosing ( WindowEvent e )

{

System.exit (0);

}

@Override

public void windowDeiconified ( WindowEvent e )

{

ti.canvas.start ();

}

@Override

public void windowIconified ( WindowEvent e )

{

ti.canvas.stop ();

}

});

ti.setResizable (false);

ti.canvas.start ();

ti.setVisible (true);

}

});

}

}

Java中如何加入swf动画

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中如何加入swf动画

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

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

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

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

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

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

javaFX动态表格

以上就是我爱编程网为大家带来的Java中如何加入swf动画,希望能帮助到大家!

免责声明:文章内容来自网络,如有侵权请及时联系删除。
与“Java中如何加入swf动画”相关推荐
怎么用java做动画
怎么用java做动画

java运行的五个步骤?Java程序从源文件创建到程序运行要经过两大步骤:1、源文件由编译器编译成字节码(ByteCode)2、字节码由java虚拟机解释运行。因为java程序既要编译同时也要经过JVM的解释运行,所以说Java被称为半解释语言("semi-interpreted"language)。下面通过以下这个java程序,来说明java程序从编译到最后运行的整个流程。

2024-06-01 23:04:50
Python中如何添加注释
Python中如何添加注释

Python中如何添加注释任何语言都有注释一说,Python也有注释,如何添加呢?Python添加注释很简单,在文件开头加入一个#即可。如下图所示,因为前面有个#,代码并没有被执行再入下图所示,第二行代码加入了#,所以第一行代码被执行,第三行被执行,第二行没有被执行那么,我们为什么要在代码中添加注释呢?代码中的注释又没有被运行,看起来没有任何意义啊?首先,作为使用者,是

2023-12-14 01:49:51
Python中如何添加注释?
Python中如何添加注释?

Python中如何添加注释?python单行注释符号(#):井号(#)常被用作单行注释符号,在代码中使用#时,它右边的任何数据都会被忽略,当做是注释。print1#输出1,#号右边的内容在执行的时候是不会被输出的。Python注释分为单行注释和多行注释。单行注释以符号“#”开始,当前行中符号“#”及其后的内容为注释语句。单行注释可以独占一行,也可放在语句末尾。说明:在Pycharm中

2023-12-18 02:50:56
如何在Java小程序中添加音乐
如何在Java小程序中添加音乐

JAVA实现音频播放这个程序只要写对了音乐文件的URL地址,例如:newURL("file:/C:/tmp/1/WindowsDing.wav");就可以播放音乐,除了可以播放.wav格式的音乐,还可以播放.au格式的音乐。另外,如果你不希望音乐循环播放,你可以去掉audio1.loop();这一语句。importjava.applet.AudioClip;importjav

2024-04-10 05:59:42
Java中如何让web服务器启动的时候自动运行web程序中某个类的某个
Java中如何让web服务器启动的时候自动运行web程序中某个类的某个

Java中如何让web服务器启动的时候自动运行web程序中某个类的某个1、首先让需要自动运行的类继承javax.servlet.http.HttpServlet2、把需要自动运行的类中写一个init方法。(servlet应用程序启动的入口就是init方法)public void init(){            System.out.println("这样在web容器启

2024-05-14 02:03:52
Java如何制作启动界面?
Java如何制作启动界面?

eclipse创建java程序教程eclipse软件操作方法01首先确保电脑上已经配置好java的环境,安装了eclipse软件,如果确定已经完成了,则双击鼠左键打开eclipse软件否则可参考如下链接,分别为安装java环境和配置java环境和下载安装eclipse的详细步骤,可参。1首先java程序的运行你需要下载和安装JDK,这是java运行的必备环境2在桌面上找到eclipes,

2024-05-16 17:08:57
如何用python turtle画奥运五环?
如何用python turtle画奥运五环?

如何用pythonturtle画奥运五环?首先画第一环,用虚线画出半径,取该半径的中点,然后从此中点延长虚线,且廷长到的终点是第一环的半径长度。终点便是第二环的圆心,半径为这条延长线。第三环同用此法。下面要说说第二行第一个环,因为上面已有两个环啦,而且两环的半径之间已有一条虚线,那么就在这条虚线做垂直平分线,然后做一个倒的等腰三角形,它的腰是圆的半径,它的顶点是该环的圆心,第五环皆用此法。

2023-12-13 05:43:27
Python如何画cos和sin的图啊?
Python如何画cos和sin的图啊?

Python如何画cos和sin的图啊?在python自带编辑器IDLE中,新建脚本如作图.py导入需要的模块importnumpyasnpimportscipyasspimportpylabaspl2输入代码x=np.linspace(0,4*np.pi,100)pl.plot(x,pl.sin(x))pl.show()

2024-01-02 19:05:35