大侠请进!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 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")把有用的东西设置在一个窗体中再刷新 中文字符编码转换成中文 高手请进解决 Java调用外部程序的难问题! 谁能帮我看看这个问题! JSP中嵌套struts标签的问题 构造函数的用处是什么啊? 我作的记事本程序其中有一个地方想问下:就是如果打开是文件在文件编辑后保存可以保存到打开的文件中,但是如果我直接编辑然后保存到一个 在Swing程序设计时,如何自定义鼠标在屏幕上的图标图案? 2个有关线程的问题, 如何控制一个java.awt.List中不同Item的颜色? java多线程问题,求大神解答 新手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")
所以,我没有办法做到----只是对我有用的部分刷新