大侠请进!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! java 里面不是有个repaint() 方法吗? 可以测试一下。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 1、通过覆盖public void update(graphics g)来消除闪烁! 在动画的实现中,经常用到repaint()函数来重画屏幕,实现动画的加载,其实在java中repaint()是通过两个步骤来实现刷新功能的,首先它调用public void update()来刷新屏幕,其次再调用paint(graphcis g)来重画屏幕,这就容易造成闪烁,特别是一些需要重画背景的程序,如果下一桢图象可以完全覆盖上一桢图象的话,便可以重写update函数如下来消除闪烁: public void update(graphics g){ paint(g) } 同样调用repaint()重画屏幕。或者直接重写不调用repaint,而用 graphics g=getgraphics(); paint(g);来实现重画屏幕。 2、 通过双缓存消除闪烁? 为了防止屏幕重画出现的闪烁,先创建一个屏外绘图区,重画完毕,直接将成品再绘制到小程序屏幕上去。下面是站长创建动态广告板时用到的双缓存技术代码: offscreenimage=createimage(w,h);//创建屏外绘图区 offscreen=offscreenimage.getgraphics();//取得绘图环境 offscreen.setfont(new font("serif",font.plain,14)); offscreen.drawstring("you are welcome!",4,getbounds().height/2); } else{ offscreen.setcolor(bgclr); offscreen.fillrect(0,0,w,h); offscreen.setcolor(fgclr); for(int i=j;i<j+16;i++){ offscreen.drawstring(strs[i],0,y+=wordvspace); } y=y-16*wordvspace; } g.drawimage(offscreenimage,0,0,this);//绘制屏外成品到小程序中 to littleboys(飞龙) :你好,谢谢给于支持!我说的刷新并不是那种直接的导致绘画的刷新,而是在Timer里面调用了ClassA的某个组件的改变该组件显示内容的函数,比如在Timer里面调用了ClassA.someComponent.setText(); 其他画面是什么?对话框试试setModel(true) to rocshaw(太阳鸟(抵制日货)) :其他画面是指所有可能挡住ClassA画面的任何窗口,比如IE, notepad, 资源管理器等等吧 swing本身没有问题的,你在设置刷新的时候把刷新函数只是对你有用的部分刷新,而不是全部刷新,试试 to wenchaohu213(夏吾) :我说的刷新,并不是那种直接的刷新,而是,我调用了一个控件的方法,这个方法刷新自己的窗口。比如,TextFieldArea.setText("ff")所以,我没有办法做到----只是对我有用的部分刷新 TextFieldArea.setText("ff")把有用的东西设置在一个窗体中再刷新 Hashtable被HashMap所取代 晚辈向前辈们求助 静态导入问题 请大家帮帮我看看我的程序到底出了什么问题,谢谢了 华为的面试题目,没做出:(大家帮忙看看 一个installanywhere的问题,高手帮忙啊 子类父类的问题 java连mysql出现unknown system variables "character_set_results\"错误? 帮帮忙~~~~~~~~~我的图片怎么显示不出来 请问用jb7编写的程序是否可以超平台,即在win下写的程序是否可以在linux下运行? 新手JDK问题 你遇到过没有?
在动画的实现中,经常用到repaint()函数来重画屏幕,实现动画的加载,其实在java中repaint()是通过两个步骤来实现刷新功能的,首先它调用public void update()来刷新屏幕,其次再调用paint(graphcis g)来重画屏幕,这就容易造成闪烁,特别是一些需要重画背景的程序,如果下一桢图象可以完全覆盖上一桢图象的话,便可以重写update函数如下来消除闪烁:
public void update(graphics g){ paint(g) } 同样调用repaint()重画屏幕。或者直接重写不调用repaint,而用 graphics g=getgraphics(); paint(g);来实现重画屏幕。
2、 通过双缓存消除闪烁? 为了防止屏幕重画出现的闪烁,先创建一个屏外绘图区,重画完毕,直接将成品再绘制到小程序屏幕上去。下面是站长创建动态广告板时用到的双缓存技术代码:
offscreenimage=createimage(w,h);//创建屏外绘图区
offscreen=offscreenimage.getgraphics();//取得绘图环境 offscreen.setfont(new font("serif",font.plain,14));
offscreen.drawstring("you are welcome!",4,getbounds().height/2);
}
else{
offscreen.setcolor(bgclr);
offscreen.fillrect(0,0,w,h);
offscreen.setcolor(fgclr);
for(int i=j;i<j+16;i++){
offscreen.drawstring(strs[i],0,y+=wordvspace);
}
y=y-16*wordvspace;
}
g.drawimage(offscreenimage,0,0,this);//绘制屏外成品到小程序中
而不是全部刷新,试试
比如,TextFieldArea.setText("ff")
所以,我没有办法做到----只是对我有用的部分刷新