Java swing 绘图闪烁问题

来源:互联网 发布:美工孙伟博时代小区 编辑:程序博客网 时间:2024/05/18 05:03

最近在同一个Jpanel中绘制多个图像的时候会出现闪烁问题。

事实上问题并不高深,闪烁的原因是因为多次绘制延迟。只需要先将图片绘制在缓冲区中,然后一次性绘制到Jpanel上就呢解决这个问题。

public class GamePanel extends JPanel {public GamePanel() {}private Prisoner prisoner;private Map map;private Guard guard;public void display(Prisoner prisoner,Map map,Guard guard){this.prisoner=prisoner;this.map=map;this.guard=guard;this.paintComponent(this.getGraphics());}@Overrideprotected void paintComponent(Graphics g) {// TODO Auto-generated method stub// 重新显示 画好只有一次性显示出来Image image = createImage(Global.MAX_WIDTH*Global.CELL_SZIE, Global.MAX_HEIGHT*Global.CELL_SZIE);Graphics g2=image.getGraphics();g2.setColor(new Color(0xffffff));g2.fill3DRect(0, 0, Global.MAX_WIDTH*Global.CELL_SZIE, Global.MAX_HEIGHT*Global.CELL_SZIE, true);this.map.drawme(g2);this.guard.drawme(g2);this.prisoner.drawme(g2);g.drawImage(image, 0, 0, null);}}


0 0