doublebuffered相关内容

JFrame 中的 BufferStrategy 与 DIY 双缓冲

到目前为止,我已经通过创建和 Image 完成了双缓冲,使用其关联的 Graphics 对象将我想要的内容绘制到该 Image 上,然后使用 paint 方法的 Graphics 对象将该 Image 绘制到屏幕上.最近,我了解了 BufferStrategy 类及其用途.我想知道这两种方法的优缺点是什么. 编辑:我不认为我的问题很清楚.我想知道 DIY 方法和 BufferStrategy ..
发布时间:2022-01-24 13:44:06 Java开发

使用 DoubleBuffering 和 FormBorderStyle.None 在 Windows10 上重绘问题

我有一个 Windows 窗体项目的问题,我只能在 Windows 10 机器上重现它(在 Windows 7 上它确实有效).我认为我可以隔离问题的根源,即,如果我打开双缓冲并将 FormBorderStyle 设置为 None,那么如果我调整表单的大小,例如在事件处理程序中,不重绘背景部分和一些控件.也是如此,有时它会起作用(五次中的一次). 没有重绘它看起来如此(通常有点不同): ..
发布时间:2022-01-15 14:40:09 C#/.NET

你如何在java中为游戏加倍缓冲?

所以在我正在制作的游戏中,我有一个弹珠跟随鼠标,但是当它这样做时,屏幕会闪烁. 背景包括两个 jpeg 和 9 个矩形.我将如何进行双缓冲?这是主窗口的代码. /*** 在此写下 Window 类的描述.** @author(你的名字)* @version(版本号或日期)*/公共类 Window 扩展 JApplet 实现 MouseMotionListener{私有 BufferedIm ..
发布时间:2021-12-30 18:27:20 Java开发

为什么 DataGridView 上的 DoubleBuffered 属性默认为 false,为什么它受到保护?

我们遇到了 DataGridViews 的性能问题,其中重绘速度非常慢,并找到了解决方案 此处 创建派生类型并在控件上启用双缓冲.(派生类型是必需的,因为 DoubleBuffered 属性是受保护的) 将 DoubleBuffered 属性设置为 true 似乎没有任何缺点. 解决方案 我认为最好的解决方案: typeof(DataGridView).InvokeMember(" ..
发布时间:2021-12-30 13:15:31 C#/.NET

Java:如何在 Swing 中进行双缓冲?

编辑两个 为了防止尖刻的评论和单行回答没有抓住重点:IFF 就像调用 setDoubleBuffered(true) 一样简单,那么我如何访问当前离线缓冲区,以便我可以开始处理 BufferedImage 的底层像素数据缓冲区? 我花时间编写了一段正在运行的代码(这看起来也很有趣)所以我真的很感激实际回答我的问题(多么令人震惊;)并解释这是什么/如何工作而不是一个 -内衬和尖刻的评论 ..
发布时间:2021-12-09 18:07:32 Java开发

如何双缓冲面板?

我有一个带有轮盘的面板,我需要对面板进行双重缓冲,以使其停止闪烁.谁能帮帮我? 编辑: 是的,我试过了. panel1.doublebuffered 不存在,只有 this.doublebuffered.而且我不需要缓冲表单,只需要缓冲面板. 解决方案 您需要从 Panel 或 PictureBox 派生. 这取决于您选择启用缓冲的方式. 如果你设置了 thi ..
发布时间:2021-12-08 14:19:14 C#/.NET

如何在表单上加倍缓冲 .NET 控件?

如何设置受闪烁影响的窗体上控件的受保护 DoubleBuffered 属性? 解决方案 这是一个更通用的 Dummy 的解决方案. 我们可以使用反射来获取受保护的DoubleBuffered 属性,然后可以将其设置为 true. 注意:您应该支付开发者税 而不是 如果用户在终端中运行,则使用双缓冲服务会话(例如远程桌面)如果此人在远程桌面上运行,则此辅助方法不会打开双缓冲. ..
发布时间:2021-12-08 13:17:05 C#/.NET

Winforms 双缓冲

我将此添加到表单的构造函数代码中: this.SetStyle(ControlStyles.AllPaintingInWmPaint | ControlStyles.UserPaint | ControlStyles.DoubleBuffer, true); 但它在加载控件时,无论何时更改(表单及其组件经常更改(需要更新))仍会显示难看的工件. 我需要做什么不同的事情? 解决方案 ..
发布时间:2021-12-08 13:15:18 C#/.NET

使用表面视图时闪烁

我正在使用曲面视图显示一些图形,问题是当我在屏幕上移动图形时出现闪烁效果,我知道这是由于双重缓冲问题,即使我经历了很多帖子,我无法解决该问题,请查看我的代码并帮助我解决此问题. public class CustomSurfaceView extends SurfaceView implements Runnable{ Thread mThread = ..
发布时间:2020-08-25 06:26:55 移动开发

.NET Compact Framework上的双重缓冲

我想知道是否有人可以向我解释如何在.net紧凑框架中对完整表单进行双重缓冲.我已经找到了双缓冲的示例,但似乎无法使它们发挥任何作用. 我们创建了具有多种形式的应用程序.其中一些表格确实需要很长时间才能在屏幕上绘制,从而导致闪烁.为了让您对我们的应用程序有一些了解,我将解释其中一种形式. 该表单包含一个usercontrol,一些面板,文本框和按钮. 用户控件的面板具有自定义绘图(在屏幕上绘制 ..
发布时间:2020-06-12 19:18:40 C#/.NET

Java中的DoubleBuffering

在将DoubleBuffer实施到程序中时遇到一些麻烦.在晕倒文本墙之前,您应该知道其中有很多内容,以防万一您需要知道.我认为遇到问题的实际地方是一种方法. 我最近在gpwiki上查找了有关双缓冲的教程,并决定尝试将他们所拥有的代码实施到我要实现双缓冲的代码中.出现以下错误:"java.lang.IllegalStateException:组件必须具有有效的对等项. 我不知道您是否知道 ..
发布时间:2020-06-12 19:18:38 Java开发

C#CF,WinForms和双缓冲区

我有一个CF 2.0应用程序,在窗体上有一个PictureBox.我想通过鼠标移动来移动PictureBox,并且需要在窗体中添加Double Buffer以避免闪烁. 我该怎么做? 谢谢! 解决方案 您不需要Form双重缓冲,需要PB.在CF中很难做到这一点.但是,您可以创建自己的控件,PB非常简单.例如: using System; using System.Draw ..
发布时间:2020-06-12 19:18:36 C#/.NET

Java中的双重缓冲

我在互联网上发现了这种双重缓冲代码,但没有任何解释.我对这段代码有些困惑. 为什么使用图像"i"?如果要使用一次,有什么用? 为什么我们已经设置了颜色,为什么要为前景颜色分配变化的颜色? g.drawImage()方法在做什么? 这是代码: public void update(Graphics g) { if(i==null) { i ..
发布时间:2020-06-12 19:18:29 Java开发

如何在Java2D中进行双缓冲?

我在屏幕上使用Java2D绘制了许多基元,并且出现了很多撕裂/闪烁. 如何启用/使用双缓冲,以便将其从屏幕上绘制出来然后显示整个内容? 解决方案 1)您创建了一个BufferedImage实例.为了获得最佳性能,您需要确保 缓冲的图像使用与要渲染到的屏幕相同的模型. 检查此方法以了解如何使用传递到任何组件的paint方法的Graphics2D创建BufferedImage(有很 ..
发布时间:2020-06-12 19:18:23 Java开发

如何消除TPaintBox右边缘的闪烁(例如,调整大小时)

摘要: 假设我有一个TForm和两个面板.面板对齐alTop和alClient. alClient面板包含一个TPaintBox,其OnPaint包含绘图代码. 组件上DoubleBuffered的默认值为false. 在绘制过程中,闪烁是很明显的,因为窗体,面板都绘制了背景. 由于面板覆盖了表单,因此拦截其WM_ERASEBKGND消息可能很好.如果不是这样,则在调整表单大小 ..
发布时间:2020-06-12 19:18:20 其他开发

用wxpython进行双缓冲

我正在使用wxpython开发一个多平台应用程序,在Panel上绘图时,在Windows上出现了闪烁问题. 我曾经在鼠标移动事件期间在缓冲区(wx.Bitmap)上绘制,而我的OnPaint方法仅由在线组成: dc = wx.BufferedPaintDC(self, self.buffer) 相当标准,但是在Windows上我仍然有闪烁的问题,而在Linux上一切正常. 我解决了 ..
发布时间:2020-06-12 19:18:18 Python

DoubleBuffered设置为true时覆盖OnPaint的问题

我创建了一个从Panel派生的自定义控件.我用它来显示一个使用BackgroundImage属性的图像.我重写OnClick方法并将isSelected设置为true,然后调用Invalidate方法并在重写的OnPaint中绘制一个矩形. 一切正常,直到我将DoubleBuffered设置为true.绘制矩形,然后将其删除,我不知道为什么会发生这种情况. public CustomCont ..
发布时间:2020-06-12 19:18:15 C#/.NET

抑制WM_ERASEBKGND的正确方法是什么?

如果需要使用双缓冲,则需要禁止显示WM_ERASEBKGND消息. 我可以处理WM_ERASEBKGND并立即返回.但是我可以将WNDCLASS/WNDCLASSEX的hbrBackground设置为NULL而不处理WM_ERASEBKGND消息吗?这是正确的方法吗? 解决方案 是的,将hbrBackground设置为NULL是避免实现无操作WM_ERASEBKGND处理程序的适当方 ..
发布时间:2020-06-12 19:18:13 其他开发