前辈啊。。你能不能给个事例代码啊?
[CODE]/*
* Test.java
*
* Created on 2007年1月24日, 上午9:11
*
* To change this template, choose Tools | Template Manager
* and open the template in the editor.
*/
package testOther;
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.MediaTracker;
import java.awt.Toolkit;
import javax.swing.JFrame;
import javax.swing.JPanel;
/**
*
* @author lbf
*/
public class Test extends JPanel implements Runnable{
private Image temp;
private Image bg1,bg2;
/** Creates a new instance of Test */
public Test() {
initImage();
initWindow();
new Thread(this).start();
}
public void run(){
while(true){
try{
Thread.sleep(1000);
if(temp==bg1){
temp=bg2;
}else{
temp=bg1;
}
repaint();
}
catch(Exception exe){
exe.printStackTrace();
}
}
}
protected void paintComponent(Graphics g){
g.drawImage(temp,100,100,this);
}
private void initImage(){
try{
bg1=Toolkit.getDefaultToolkit().createImage(this.getClass().getResource("bg1.png"));
bg2=Toolkit.getDefaultToolkit().createImage(this.getClass().getResource("bg2.png"));
temp=bg1;
MediaTracker mt=new MediaTracker(this);
mt.addImage(bg1,0);
mt.addImage(bg2,1);
mt.waitForAll();
}
catch(Exception exe){
exe.printStackTrace();
}
}
private void initWindow(){
JFrame demo=new JFrame("demo");
this.setPreferredSize(new Dimension(300,300));
demo.add(this,BorderLayout.CENTER);
demo.setSize(300,300);
demo.setLocationRelativeTo(null);
demo.setVisible(true);
demo.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void main(String[] args) throws Exception{
new Test();
}
}[/CODE]
这个是最最最简单的动画了
你看看,思路一个,无非是起一个线程去控制,然后调用repaint方法
你要把bg1.png 和bg2.png放到class文件一个目录去