java编写的图形界面,为什么会闪烁
java中,关于paint,repaint,update的具体执行动作是什么,比如说我用paint把屏幕变成绿色,不是说执行顺序是repaint->update->pai...
java中,关于paint,repaint,update的具体执行动作是什么,比如说我用paint把屏幕变成绿色,不是说执行顺序是repaint->update->paint吗,若之后又调用repaint,而此时paint中的绘制操作是把屏幕上边变成红的,那么结果是上边是红的,下边是绿的吗。
简单说,paint,repaint,update中的调用,以及覆盖,屏幕清为空白,绘制,各种关系各种调用顺序是什么。
另外,上面的问题可以用查api的方式自己找到答案吗,因为实在不想每个问题都拿出来问,还麻烦大家。 展开
简单说,paint,repaint,update中的调用,以及覆盖,屏幕清为空白,绘制,各种关系各种调用顺序是什么。
另外,上面的问题可以用查api的方式自己找到答案吗,因为实在不想每个问题都拿出来问,还麻烦大家。 展开
4个回答
展开全部
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);
}
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);
}
展开全部
public void paint(Graphics g)
是绘制组件。
public void update(Graphics g)
是更新组件。
public void repaint()
重绘此组件。
具体在api中可以索引component类详细查询。
是绘制组件。
public void update(Graphics g)
是更新组件。
public void repaint()
重绘此组件。
具体在api中可以索引component类详细查询。
追问
闪烁怎么产生的?
我的贪吃蛇程序不加上面的程序会闪烁,加了上面的之后蛇的尾巴除不掉,一直拖着。为什么呢
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
闪烁 是因为 调用的repaint方法,你试试update(getGraphics())方法试试,repaint已经是重绘了,或者你调用repaint(x,y,w,h)局部刷新
追问
paint的内容一直是一样的,为什么也会闪烁呢,就是有段时间屏幕是空白的呗。
update和repaint有什么不同呢
追答
update 和 repaint 在swing中区别已经很小了,没有特殊的情况 直接掉用repaint吧
给个代码 你分别尝试一下,能看出其中的区别
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
解决闪烁,双缓冲技术,也就是屏外绘制。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询