「java动画调速」怎么调动画速度

博主:adminadmin 2023-01-25 13:12:09 346

今天给各位分享java动画调速的知识,其中也会对怎么调动画速度进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

java做动画的原理,加个实例,谢谢

我用swing 做了个 雷霆战机的。。 g.fillRect(x60, y60, 10, 10);

g.fillRect(x70, y70, 10, 10); 画子弹的

g.drawImage(new ImageIcon("src/fr.jpg").getImage(),x0,y0,7,7,rootPane); 画飞机的

g.drawImage(new ImageIcon("src/fr.jpg").getImage(),x02,y02,7,7,rootPane);

g.drawImage(new ImageIcon("src/fr.jpg").getImage(),x03,y03,7,7,rootPane);

用多线程 然后不停刷新 (g 是 Graphics g x60, y60 这些都是坐标 后面的是长宽 )

当时import的包

import java.applet.Applet;

import java.applet.AudioClip;

import java.awt.Color;

import java.awt.Font;

import java.awt.Graphics;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.awt.event.KeyEvent;

import java.awt.event.KeyListener;

import java.util.Date;

import java.util.Random;

import javax.swing.ImageIcon;

import javax.swing.JButton;

import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.JPanel;

import javax.swing.JTextField;

import javax.swing.Timer;

怎么用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 label上放gif图片出现图片速度变快的现象

以前我也用到过这个问题,图片闪的原因是因为界面在不断的重绘,而图片通常数据量较大,造成重绘时闪动。以下的代码你可以参考下。import java.awt.Dimension;

import java.awt.Graphics;

import java.awt.Image;

import java.awt.event.ActionListener;

import java.awt.event.MouseEvent;

import java.awt.event.MouseListener;

import javax.swing.JFrame;

import javax.swing.JMenu;

import javax.swing.JMenuBar;

import javax.swing.JMenuItem;

import javax.swing.JPanel;

public class MyPanel extends JPanel {

Image doubleBuffer;

int clickCount;

private static final Dimension pSize = new Dimension(300, 300);

public void paint(Graphics g) {

long t1 = System.currentTimeMillis();

if (doubleBuffer == null) {

doubleBuffer = createImage(this.getWidth(), this.getHeight());

}

g.drawImage(doubleBuffer, 0, 0, null);

long t2 = System.currentTimeMillis();

System.out.println("Render consumed " + (t2 - t1) + " milliseconds");

}

public Dimension getPreferredSize()

{

return pSize;

}

public void changeInternalStatus()

{

Graphics g2 = doubleBuffer.getGraphics();

//更改绘图......;

g2.drawLine(0, clickCount, doubleBuffer.getWidth(null), clickCount);

clickCount += 5;

g2.dispose();

repaint();

}

public static void main(String[] args) {

final MyPanel p = new MyPanel();

JFrame f = new JFrame();

JMenuBar mb = new JMenuBar();

JMenu m = new JMenu("Test");

mb.add(m);

JMenuItem mi = new JMenuItem("Draw in off screen");

m.add(mi);

mi.addActionListener(new ActionListener(){

public void actionPerformed(java.awt.event.ActionEvent e) {

p.changeInternalStatus();

}

});

f.setJMenuBar(mb);

f.setContentPane(p);

f.pack();

f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

f.show();

}

}

JComponent默认实现了double buffering,如果你觉得不满意,你可以参考一下JComponent的paintDoubleBuffered方法。

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

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

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

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

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

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

javaFX动态表格

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

效果图

参考代码

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

public class MoveTextFrame extends JFrame {

JLabel jl;//文字标签

int speed=2;//移动速度

public MoveTextFrame() {

jl = new JLabel("文字动画");

jl.setForeground(Color.RED);

add(jl);

setSize(380, 100);//窗口大小

setLocationRelativeTo(null);//窗口居中

setResizable(false);

setDefaultCloseOperation(EXIT_ON_CLOSE);

setVisible(true);

//设置定时器, 每隔25毫秒,改变一次文字标签的位置

Timer t = new Timer(25, new ActionListener() {

public void actionPerformed(ActionEvent e) {

int x = jl.getX()+speed;//计算移动后的位置

if(x=390){//如果超过就指定像素,就重新从左边开水移动

x=-30;

}

jl.setLocation(x, jl.getY());//更新位置

//repaint();

}

});

t.start();

}

public static void main(String[] args) {

new MoveTextFrame();

}

}

java魔方小站动画怎用啊,求教程,详细

你先点java动画,显示一个X,然后再点java动画下载(上面),下载后,就可以打开它。要不然就是内存不够或没有打开它,你试一下退出再进来,应该就可以了。

关于java动画调速和怎么调动画速度的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。