當前位置:首頁 » 編程語言 » 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();
}
}

熱點內容
android文件夾重命名 發布:2025-05-15 01:13:50 瀏覽:481
cns腳本 發布:2025-05-15 01:13:38 瀏覽:722
數據結構與演算法筆試題 發布:2025-05-15 01:04:20 瀏覽:417
搜狗輸入法如何直接編輯配置文件 發布:2025-05-15 00:51:47 瀏覽:668
電箱都有哪些配置 發布:2025-05-15 00:30:21 瀏覽:74
安卓qq邀請碼在哪裡尋找 發布:2025-05-15 00:02:04 瀏覽:35
三菱fx編程口 發布:2025-05-15 00:01:23 瀏覽:810
醫院招商引資宣傳片腳本 發布:2025-05-15 00:01:21 瀏覽:368
linuxcftp伺服器 發布:2025-05-14 23:58:18 瀏覽:718
探岳什麼配置才有駕駛模式選擇 發布:2025-05-14 23:53:17 瀏覽:146