使用我的框架的绘图()中的graphics给每个调用repaint()的切割效果

每一帧我的线程的run()方法调用帧子类的repaint(),在这个框架子类中,我重写paint(Graphics),因为我想从我的游戏中获得不同的屏幕,我把Graphics gparameter passing给PlayScreen类的实例,在那里为特定的屏幕进行绘制。 每当run()调用repaint()时,问题就来了,并且tile开始闪烁呈现和closures。 我开始怀疑这个问题来自我设置repaint()和draw()调用的顺序。 效果的图片

GameObject(具有run方法的类)。

@Override public void run() { isAlive = true; try{ while(isAlive){ Thread.sleep(17); screen.repaint(); } }catch(Exception x){ } } 

扩展Frame的屏幕类

 @Override public void paint(Graphics g) { playScreen.draw(g); } 

PlayScreen(渲染图块的位置)

 public void draw(Graphics g){ for(ArrayList<Tile> tileArray: tiles){ for(Tile tile : tileArray){ g.drawImage(tile.getTile(), tile.getX(), tile.getY(), null); } } }