请问在java里主要用什么实现动画?

sealyu 2004-04-29 08:12:56
我现在在做一个数据结构算法演示软件,用java实现,请问主要用到哪方面的?多谢!!!!
...全文
101 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
brushington 2004-04-29
  • 打赏
  • 举报
回复
线程之间可以用wait,notify同步,让主线程去唤醒动画线程
chenlynn 2004-04-29
  • 打赏
  • 举报
回复
用TIMER可以是可以,但是每一步执行多少时间你能够知道吗?而且计算机执行速度很快的,人工难以计算啊,我个人认为还是用线程,每执行一行代码使一个线程激活,当执行完毕后使该线程呈阻塞状态或让该线程死忘,再去执行下一个线程(及下一句代码)
sealyu 2004-04-29
  • 打赏
  • 举报
回复
请问我要把程序的代码放在边上,使图形和代码(用列表显示在边上,就是算法执行到哪一行也显示出相应的图形)显示同步,是不是要用到timer,具体怎么用呢?楼上大哥能不能帮忙解释一下
chenlynn 2004-04-29
  • 打赏
  • 举报
回复
主要用到JAVA中的线程,

import java.awt.*;
import java.applet.*;
import java.awt.event.*;

class Mycanvas extends Canvas implements Runnable //在画布中实现运动,即线程接口
{
Image img1,img2;
Toolkit toolkit;
int x,y;
Thread thread;
Mycanvas()
{
getSize();
setBackground(Color.cyan);
x=150;
y=250;
toolkit=getToolkit();
//toolkit=Toolkit.getDefaultToolkit(); 注:这两种方法都可行
img1=toolkit.getImage("img1.jpg"); //获得图像
img2=toolkit.getImage("car1.gif");
thread=new Thread(this);
thread.start();
}
public Dimension getPreferredSize()
{
return new Dimension(800,350);
}
public void paint(Graphics g)
{
g.drawImage(img1,50,50,x,y,this); //绘制图像
g.drawImage(img2,430,50,x,y,this);
g.drawString("〈---JPG格式图像!",305,180);
g.drawString("GIF格式图像!---〉",325,250);
}
//下面三行代码可克服图像闪烁,即重写了update函数
/*public void update(Graphics g)
{
paint(g);
}*/
public void run() //线程控制
{
while(true)
{
if((x<=450)) //图像慢慢变大
{
x+=1;
y+=1;
repaint();
}
else
{
x=150;
y=250;
}
try
{
thread.sleep(50);
}catch(InterruptedException e){}
}
}
}
class Mywindow extends Frame
{
Mywindow(String s)
{
super(s);
setVisible(true);
setBackground(Color.cyan);
setSize(800,500);
setLayout(new BorderLayout());
Mycanvas canvas;
canvas=new Mycanvas();
add(canvas,"Center");
addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
dispose();
System.exit(0);
}
});
}
}
public class ImageEventDemo1
{
public static void main(String args[])
{
Mywindow window;
window=new Mywindow("调用图像--利用线程逐步放大");
window.setVisible(true);
}
}

62,623

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧