java编写的图形界面,为什么会闪烁

java中,关于paint,repaint,update的具体执行动作是什么,比如说我用paint把屏幕变成绿色,不是说执行顺序是repaint->update->pai... java中,关于paint,repaint,update的具体执行动作是什么,比如说我用paint把屏幕变成绿色,不是说执行顺序是repaint->update->paint吗,若之后又调用repaint,而此时paint中的绘制操作是把屏幕上边变成红的,那么结果是上边是红的,下边是绿的吗。
简单说,paint,repaint,update中的调用,以及覆盖,屏幕清为空白,绘制,各种关系各种调用顺序是什么。

另外,上面的问题可以用查api的方式自己找到答案吗,因为实在不想每个问题都拿出来问,还麻烦大家。
展开
 我来答
糖糖寳寳
2015-09-09 · TA获得超过6.4万个赞
知道大有可为答主
回答量:1.8万
采纳率:92%
帮助的人:3932万
展开全部
1、因为调用了repaint方法,或者调用repaint(x,y,w,h)局部刷新
2、可调用java 的awt/swing控件,下面贴一个示例代码:
public static void main(String args[]){
JFrame jf = new JFrame();
jf.getContentPane().setLayout(new FlowLayout());
jf.getContentPane().add(new JButton("测试"));
jf.setSize(320, 240);
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jf.setVisible(true);
}
464365148
2014-04-11 · TA获得超过172个赞
知道答主
回答量:14
采纳率:0%
帮助的人:13.9万
展开全部
public void paint(Graphics g)

是绘制组件。
public void update(Graphics g)
是更新组件。
public void repaint()
重绘此组件。
具体在api中可以索引component类详细查询。
追问
闪烁怎么产生的?
我的贪吃蛇程序不加上面的程序会闪烁,加了上面的之后蛇的尾巴除不掉,一直拖着。为什么呢
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hitzsf
2014-04-11 · TA获得超过2060个赞
知道大有可为答主
回答量:1741
采纳率:78%
帮助的人:1162万
展开全部
闪烁 是因为 调用的repaint方法,你试试update(getGraphics())方法试试,repaint已经是重绘了,或者你调用repaint(x,y,w,h)局部刷新
追问
paint的内容一直是一样的,为什么也会闪烁呢,就是有段时间屏幕是空白的呗。
update和repaint有什么不同呢
追答

update 和 repaint 在swing中区别已经很小了,没有特殊的情况 直接掉用repaint吧

给个代码 你分别尝试一下,能看出其中的区别



本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
feng2jun1314
2014-04-11
知道答主
回答量:53
采纳率:0%
帮助的人:28.4万
展开全部
解决闪烁,双缓冲技术,也就是屏外绘制。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式