首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Java SWT GC,如何强制刷新双缓冲镜像?

Java SWT GC,如何强制刷新双缓冲镜像?
EN

Stack Overflow用户
提问于 2011-10-26 13:11:24
回答 1查看 1.7K关注 0票数 1

具有以下代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
image = new Image(display, imageData);
offScreenImageGC.drawImage(image, 0, 0, imageData.width, imageData.height, imageData.x, imageData.y, imageData.width, imageData.height);
/* Draw the off-screen image to the shell. */
shellGC.drawImage(offScreenImage, 0, 0);

..。在执行了下面的指令:shellGC.drawImage(offScreenImage, 0, 0);之后,我有时会让图片在shellGC组件上可见,有时则不会。只有当我“减慢”程序的执行速度时,我才能看到它,例如,当我处于调试模式时。但是当它运行得很快时,它不会显示出来。我想要它强制显示,冲洗或任何你命名的,这是可能的吗?

让我澄清一下,我想要实现的是实现一个基于帧的动画,但还不能播放它的双缓冲,能够停止它,只显示特定的单帧暂停,等等事情…

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-10-27 19:27:37

结果表明,这是使用SWT将缓冲区加倍的唯一安全方法:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
canvas.addPaintListener(new PaintListener() {
              public void paintControl(PaintEvent event) {
                 //Obtain the next frame
                ImageData imageData = imageDataArray[iad.imageNumber];
                Image imageFrame = new Image(display, imageData);

                // Create the image to fill the canvas
                Image image = new Image(display, canvas.getBounds());

                // Set up the offscreen gc
                GC gcImage = new GC(image);

                //Draw the image offscreen
                gcImage.setBackground(event.gc.getBackground());
                gcImage.drawImage(imageFrame, 0, 0);

                // Draw the offscreen buffer to the screen
                event.gc.drawImage(image, 0, 0);

                imageFrame.dispose();
                image.dispose();
                gcImage.dispose();
              }
            });

……通过将此方法仅用于双缓冲,可以保证跨平台的运行时行为是相等的,并且不可预测的缓冲区行为也消失了。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7903071

复制
相关文章
python运行时强制刷新缓冲区
分析原因: 在运行代码时,打印10个"*"没有占满缓存区,所以等到程序结束时,才会一次性输出。
py3study
2020/01/08
1.6K0
java的双缓冲技术
Java的强大特性让其在游戏编程和多媒体动画处理方面也毫不逊色。在Java游戏编程和动画编程中最常见的就是对于屏幕闪烁的处理。本文从J2SE的一个再现了屏幕闪烁的Java Appilication简单动画实例展开,对屏幕闪烁的原因进行了分析,找出了闪烁成因的关键:update(Graphics g)函数对于前端屏幕的清屏。由此引出消除闪烁的方法——双缓冲。双缓冲是计算机动画处理中的传统技术,在用其他语言编程时也可以实现。本文从实例出发,着重介绍了用双缓冲消除闪烁的原理以及双缓冲在Java中的两种常用实现
xiangzhihong
2018/02/01
2.3K0
Java SWT事件
什么是事件?点击鼠标是一个事件,按下一个按钮也一个事件,关闭一个窗口也是一个事件。 什么是监听器?监听器就是监听事件什么时候发生的,用来控制事件发生的具体动作。(个人见解) 事件产生处的SWT组件称为事件源,(官方) 对事件作出具体动作称为监听器(Listener)。监听器负责监听组件上的事件,并对发生的事件进行处理。基本的模式是将一个监听器添加到已经创建的组件中,当相应的事件发生时,监听器的代码就会被执行。 SWT 的常用事件 每一种类型的监听器,都有一个接口来定义这种监听器,由类提供事件
汤高
2018/01/11
2K0
小程序强制刷新tabbar
小程序中当我们点击tabbar页面时候是不会强制刷新页面数据进行重新渲染的,有时候我们业务需要重新进行刷新渲染数据
安德玛
2022/03/06
2K0
java swt gridlayout_SWT GridLayout使用总结
里面所有方法都是链式调用,设置完GridLayout的参数后,调用applayTo::Composite,为一个Composite设置layout。Composite comp1 = toolkit.createComposite(shell);
全栈程序员站长
2022/09/02
7160
java swt gridlayout_SWT GridLayout使用总结
如何优化Java GC
在第一篇 理解 Java GC 中我们学习了不同GC算法的处理过程,GC是如何工作的,什么是年轻代和老年代,JDK7中的5种GC类型,以及每种GC类型对性能的影响。
码代码的陈同学
2018/07/08
1.2K0
如何优化Java GC
Vue 强制刷新文档流
上面是一个 uni-app 中 switch 切换状态的组件,这个组件存在一个问题:
跟着飞哥学编程
2022/11/21
8890
Vue 强制刷新文档流
浅谈双缓冲技术在游戏里面的应用【java】
窗体类有两种Frame、JFrame两种格式。 需要注意的是,他们都需要导入相关的包。如果是Frame格式,需要添加如下代码(导入相关的包):
时间静止不是简史
2020/07/24
6010
浅谈双缓冲技术在游戏里面的应用【java】
Mac 强制刷新本地的 DNS 缓存
一般情况下,修改了域名的 DNS 解析,在本地访问该域名时,解析到的 IP 值还是旧的,想立即解析到最新值,那么就需要清理本地的 DNS 缓存,在终端中执行如下命令即可:
轻量级云原生架构实验室
2022/11/30
10.3K2
java:SWT 缩放图像(Image)
版权声明:本文为博主原创文章,转载请注明源地址。 https://blog.csdn.net/10km/article/details/53381689
10km
2019/05/25
1.2K0
swt java 内嵌activeX控件
这里用的是SWT/JFace开发application中SWT自带的org.eclipse.swt.ole.win32 包可以支持内嵌OLE和ActiveX。 具体用法如下:
BUG弄潮儿
2022/06/30
1.1K0
强制刷新gradle依赖缓存的方法
有时候我们需要在不改变版本号的前提下 同步gradle重新从远程更新依赖包 方案一: 修改项目任意一个依赖库版本号,然后同步gradle,同步完成后再改回来 方案二: 执行以下指令强制刷新 Windo
乱码三千
2021/07/29
7.2K0
强制刷新gradle依赖缓存的方法
printf行缓冲的概念以及刷新缓冲区的条件
什么是行缓冲? 当输入输出遇到换行符的这类缓冲定义为行缓冲。标准输入和标准输出都是行缓冲。 引入缓冲区的目的是什么? 简单的讲,设置缓冲区是为提高IO速度,减少CUP等待IO而浪费CPU资源。
lexingsen
2022/02/24
1.1K0
printf行缓冲的概念以及刷新缓冲区的条件
vue页面刷新_vue强制重置组件
经常使用vue的小伙伴看到这个应该很熟悉吧,我们经常用它来实现前进后退,但别忘了它还可以实现自身页面刷新
全栈程序员站长
2022/11/03
2.4K0
vue页面刷新_vue强制重置组件
vue强制刷新页面方法_vue页面回退不刷新
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/11/17
5K0
java SWT:基于Composite定制背景透明的浮动图像按钮(image button)
版权声明:本文为博主原创文章,转载请注明源地址。 https://blog.csdn.net/10km/article/details/53488923
10km
2019/05/25
2K0
java SWT:基于Composite定制背景透明的浮动图像按钮(image button)
Qt的双缓冲技术(double buffering)
Qt的双缓冲技术(double buffering)是Qt绘画机制的一部分,是一种在Qt4中被全面采用的技术。其核心是:把一个窗口部件渲染到一个脱屏pixmap(off- screen pixmap)中,然后再把这个pixmap复制到显示屏幕上。这样做的目的是用于消除屏幕的闪烁并且因而界面会显得更漂亮。Qt4中,Qt会自动处理这些情况,所以在普通的绘画中,我们不必要关注这些内容。
全栈程序员站长
2022/09/03
2.2K0
angular路由懒加载强制刷新_angular路由
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/11/08
2K0
双缓冲(Double Buffer)原理和使用
原文出自:http://blog.csdn.net/xiaohui_hubei/article/details/16319249
233333
2020/02/25
3.7K0
双缓冲(Double Buffer)原理和使用
java缓冲流
使用缓冲流的好处是,能够更高效的读写信息,原理是将数据先缓冲起来,然后一起写入或者读取出来。经常使用的是readLine()方法,表示一次读取一行数据。
IT工作者
2022/05/09
8270

相似问题

双缓冲swt

10

如何强制刷新镜像

219

Java双缓冲

21

如何追加时间戳强制刷新镜像

21

如何通过元刷新强制缓存镜像?

33
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文