为什么用Java运行图片移动时会有拖影,我写了repaint()了啊???

ccyccya 2018-01-06 01:59:16
package plane;

import java.awt.Color;
import java.awt.Graphics;
import java.awt.Image;

import javax.swing.ImageIcon;
import javax.swing.JFrame;

public class PlaneGame extends JFrame {
Image img =GameUtil.getImage("images/zxc.jpg"); //GameUtil是我写的一个工具类,用来导入图片
ImageIcon pic1;
public PlaneGame(){
super("图片移动");
setLocation(100,100);
setSize(600,600);
setBackground(Color.black);
setVisible(true);
new GameThread().start();
setDefaultCloseOperation(EXIT_ON_CLOSE);
}


public int x=100,y=100;
@Override
public void paint(Graphics g) {
g.drawImage(img, x, y, null);
x+=10;
}

class GameThread extends Thread{
public void run(){
while(true){
repaint();
try {
Thread.sleep(40);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}


public static void main(String[] args) {
new PlaneGame();
}

}
...全文
585 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
云楼 2018-01-09
  • 打赏
  • 举报
回复
要将整个绘图区域全部重绘,将paint修改一下 public void paint(Graphics g) { Image image = createImage(600,600); Graphics g2=image.getGraphics(); g2.drawImage(img, x, y, null); g.drawImage(image, 0, 0, null); x+=10; }
ooo-ooo 2018-01-08
  • 打赏
  • 举报
回复
40ms会不会是频率太快了
qq_41592230 2018-01-06
  • 打赏
  • 举报
回复
写个sleep试试

62,614

社区成员

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

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