如何消除java屏幕闪烁
publicvoidpaint(Graphicsg){super.paint(g);BufferedImageimage=null;if(image==null){ima...
public void paint(Graphics g) {
super.paint(g);
BufferedImage image = null;
if(image == null) {
image = new BufferedImage(900,600,BufferedImage.TYPE_3BYTE_BGR);
}
Graphics g2 = image.getGraphics();
g2.drawImage(this.thisBackGround.getBgImage(), 0, 0, this);
g2.dispose();
//把缓冲区图片画到窗体上
g.drawImage(image, 0, 0, this);
}
public void update(Graphics g) {
this.paint(g);
}
public void run() {
while(true) {
this.repaint();
try {
Thread.sleep(50);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
上面的代码测试后屏幕闪得好害,请问问题出在哪儿?高手帮忙解决一下
问题解决了,只需要去掉paint方法里的super.paint(g)语句即可,原因是paint方法是完全复写父类的方法,所以不需要再调用父类方法,内部原理有待进一步研究,谢谢hohahevivi,谢谢各位的答案! 展开
super.paint(g);
BufferedImage image = null;
if(image == null) {
image = new BufferedImage(900,600,BufferedImage.TYPE_3BYTE_BGR);
}
Graphics g2 = image.getGraphics();
g2.drawImage(this.thisBackGround.getBgImage(), 0, 0, this);
g2.dispose();
//把缓冲区图片画到窗体上
g.drawImage(image, 0, 0, this);
}
public void update(Graphics g) {
this.paint(g);
}
public void run() {
while(true) {
this.repaint();
try {
Thread.sleep(50);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
上面的代码测试后屏幕闪得好害,请问问题出在哪儿?高手帮忙解决一下
问题解决了,只需要去掉paint方法里的super.paint(g)语句即可,原因是paint方法是完全复写父类的方法,所以不需要再调用父类方法,内部原理有待进一步研究,谢谢hohahevivi,谢谢各位的答案! 展开
3个回答
展开全部
楼主可以把图片放在“有照片”相册里,然后修改它们的链接地址,再上传就行了
如果对您有帮助,请记得采纳为满意答案,谢谢!祝您生活愉快!
vaela
如果对您有帮助,请记得采纳为满意答案,谢谢!祝您生活愉快!
vaela
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
改用蒙板动画试试
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
thread.sleep(50);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询