首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

关于graphics的一个小有关问题,大家进来帮我看看。

2011-12-04 
关于graphics的一个小问题,大家进来帮我看看。。。import java.awt.*import java.awt.event.*import javax.

关于graphics的一个小问题,大家进来帮我看看。。。
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class TestGraphics_1 {
public static void main(String[] args) {
// TODO Auto-generated method stub
  new Graphics_1();
}

}
class Graphics_1 extends JFrame implements Runnable{
private Image image;
private int movex=0;
private Thread t;
Graphics_1(){
setTitle("Test Graphics");
setVisible(true);
setSize(new Dimension(400,300));
setLocation(100,100);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

image=Toolkit.getDefaultToolkit().getImage("D:/1.gif");
init();
}
public void init(){
addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
JOptionPane.showConfirmDialog(Graphics_1.this, "确定要退出", "退出", JOptionPane.INFORMATION_MESSAGE);
}
});
t=new Thread(this);
t.start();
}
public void paint(Graphics g){
g.drawImage(image, movex,50,60, 60, this);
}
public void update(Graphics g){
paint(g);
}
@Override
public void run() {
// TODO Auto-generated method stub
while(true){
try{
t.sleep(100);
}catch(Exception e){}
if(movex+image.getWidth(this)<getSize().width){
  movex+=2;
  repaint();
}else{
break;
}
}
}

}


  由于上传不了最后运行结果的图片,只能说说了。
最后得到的结果就是 物体在移动过程中后面留有很多残影。这是怎么回事?请各位高手帮帮忙,小弟在此谢过了。。

[解决办法]
出现这个问题的原因是你重写的paint方法没有调用父类的paint方法及时清除屏幕,g.drawImage(image, movex, 50, 60, 60, this);方法之前添加一句

Java code
super.paint(g); 

热点排行