问题标签 [repaint]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
2362 浏览

c++ - c ++ gdi动画不起作用

我试图使用 gdi 创建球动画,但我无法让它工作。我用这个创造了一个球

笔笔(颜色(255, 0, 0, 255));graphics.DrawEllipse(&pen, sf, 0, 10, 10); 我有 while 循环,它循环并将 1 添加到 sf 值,基本上就像这个 sf++;比我尝试重新绘制窗口(它不起作用)所以最终会出现不止一个圆圈;/这是循环(循环是 int WM_PAINT)

提前感谢拉米

0 投票
4 回答
956 浏览

java - 从 Eclipse 运行应用程序时未调用 repaint()?

当我使用 Eclipse 和 Run->cmd 运行程序时,我从来没有将“paint”写入我的命令行窗口。如果我在另一个程序中从 paintComponent 运行 System.out.print(),它工作正常。有人可以帮忙吗?

0 投票
1 回答
549 浏览

jquery - jQuery:减少重绘

我需要优化图片库滑块,因为很多浏览器都很难处理动画。

请考虑以下示例:

当然,这给很多浏览器带来了巨大的压力,它需要每 20 毫秒重绘 3 次!

有什么方法可以克隆三个 div,离线处理它们,然后它们一次替换所有它们,从而将重绘数量减少到一个?

如果您有其他建议,随时分享。

谢谢!

0 投票
5 回答
5130 浏览

iphone - 以编程方式更新数据后如何为 iPhone 3.x 重新绘制 UITextView

在我的应用程序中,我以编程方式更新了 textView。实际上,我遍历 SQLITE3 DB 中的数据集并显示给定时间的特定文本。然后我想显示下一个数据集记录中的文本等等。我一直在浏览各种论坛和苹果文档,但找不到像重绘、刷新、updateTextView 等命令之类的东西。我正在处理长字符串,为什么我认为 UITextView 将是最好的显示方式。但是,如果另一个 UI 类,如 UITextField 或 UILabel 会更好、更容易地实现我正在寻找的东西,我也会使用它。没问题。

0 投票
2 回答
201 浏览

java - JScrollPane 总是清除我的面板

Hy.. 我有一个 JPanel,在这个 contentPanel 中我添加了一些其他自定义面板并为它们提供位置等。所以现在我向 contentPanel 添加了一个 JScrollPane,并且当我向下滚动时它总是会清除我的 contentPanel,但面板仍然存在但不可见...

我怎样才能让它们再次可见?

这是我将面板添加到 contentPanel 的代码。x,y,j 是该位置的一些设置,因为我有一个固定的窗口。

谢谢

0 投票
1 回答
1059 浏览

delphi - Delphi 6 - 仅当所有者窗口在使用 Graphics32 库时需要重新绘制时才更新位图

我有一个使用原生 Delphi 代码在 TPaintBox 画布上创建 3D 运动的应用程序。在旧代码中,我将 3D 图像渲染为 Timer 事件上的临时 TBitmap。在 TPaintBox OnPaint() 事件中,我将 BitBlt() 临时 TBitmap TPaintBox 的画布。这种方法效果很好,但动作很生涩。

因为我对运动的平滑度不满意,所以我决定尝试“渲染”到一个非常大的工作区位图,然后将其下采样到 TPaintBox 画布。为了进行重新采样,我使用了我在这里读到的 Graphics32 库:

在 Delphi 中很好地缩放图像?

我更改了我的代码以渲染为一个大的 TBitmap32 (1100w x 1100h),然后当我对其进行下采样时,我使用带有 TLanczosKernel 内核的 Graphics TKernelResampler 对象对另一个大小与TPaintBox Canvas 并调用 TPaintBox 的 Refresh 方法。在 TPaintBox OnPaint 事件中,我 BitBlt() 将 TBitmap32 下采样到 TPaintBox 画布。

这可行,但问题是我只在拥有 TPaintBox 的表单需要重绘时才看到重绘,尽管我在完成渲染后立即在 TPaintBox 上调用了 Refresh 方法,但旧代码没有这个问题正如我所说的那样。作为有效性测试,我在大型高分辨率 TBitmap32 对象和用于预渲染的较小 TBitmap32 对象上调用了 SaveToFile()。位图显示,在 Timer 事件之间,帧的内容确实没有改变,所以这不是一个奇怪的重绘相关问题,至少 TPaintBox 组件没有。

如果我通过移动表单或用另一个表单覆盖其客户区的任何部分来使表单的画布无效,那么 TBitmap32 对象的内容会更新,我保存到磁盘作为检查的位图图像也会更新。

就好像 Graphics32 TBitmap 对象本身需要失效,以便更新我渲染到大型高分辨率工作区的新内容。但是,TBitmap32 没有这样的无效/刷新调用。

如果那里有人对 Graphics32 库有经验并且可以告诉我为什么我只在表单需要重新绘制或它的客户区无效时才看到图像发生变化,那么我将不胜感激。

0 投票
2 回答
1507 浏览

java - 为什么在虚拟桌面之间切换时部分隐藏的 JFrame 在 Linux 上无法正确重绘

我们遇到了 Java 6 应用程序在切换虚拟桌面时无法正确刷新的问题。到目前为止,该问题已在带有 GNOME 的 Fedora 11 和 13 以及带有 KDE 的 Suse SLES 10 上重现。我使用以下测试用例来重现问题:

启动此程序并移动另一个窗口,例如终端窗口,部分位于其前面。等待窗口背景变为红色,切换到另一个虚拟桌面并等待五秒钟,然后切换回原来的屏幕。现在背景应该是完全绿色的。相反,我得到的是一个仅在其他窗口未覆盖的可见部分中部分更新的窗口。

Java 5 不会出现此问题,并且在启动时使用以下属性之一时不会出现此问题:

或者

但是,关闭 Swing 的双缓冲似乎不是一个很好的选择。这是 Linux 上的一个 JDK 错误,还是我们可以在我们的应用程序中做任何事情来解决这个重绘问题?

0 投票
3 回答
1625 浏览

java - MouseMoved 上的 Java Repaint 导致延迟

当用户移过图表(-> 显示图表的名称)和用户没有移过图表(- > 不显示图表的任何名称)。但这会在运行应用程序时导致巨大的延迟(我看到屏幕被重新绘制非常缓慢,滞后,每次重新绘制之前屏幕都是白色的空白;重新绘制需要很长时间)。

这些是它所涉及的代码部分:

它调用一个函数来检查图表是否悬停,并设置变量是否悬停图表,如果是:悬停哪个图表(要显示的名称,要显示的 x 和 y 位置),然后重新绘制应用程序。因此,它基本上在每次进行鼠标移动时都会重新绘制应用程序,以确保它仅在用户移动时才显示图表的名称。但这会导致屏幕滞后很多,重新绘制时断断续续。

现在我想知道:解决这个问题的最佳方法是什么?我应该实施某种延迟来检查鼠标移动还是可以做到的?

提前致谢,

斯凯菲。

0 投票
3 回答
2213 浏览

java - 快速重绘问题(画布对象)

新细节:

从我的主类的 actionPerformed 事件内部调用时,我的 JPanel 对象的重绘方法不起作用。它确实在主类 ImageViewer 的 ImageViewer 方法中工作,但在此类的 actionPerformed 方法中不起作用。

这些是我的代码中无法正常工作的基本部分(重绘部分):

主类:

图形面板类:

0 投票
1 回答
616 浏览

java - paintComponent() 在 repaint() 之后留下以前绘制的图像

我有一个绘制 .png 图像的 JPanel。每个图像有 2 个副本,以表示它是否已被选中。一张图片是正常的,一张有彩色边框表示已进行选择。(为了争论,您可以将这些图像视为简单的形状)

绘制哪个版本的图像是通过 MouseListeners 确定的。如果用户选择 image1,那么 image1 将显示其突出显示的版本。

一般来说,这是有效的,但是在 repaint() 时,图像的突出显示版本被留下了。由于突出显示的版本比普通版本略大,您可以看到它突出在新绘制的普通图像后面(重叠)。

我认为 repaint() 应该完全处理当前的图纸并从头开始,这似乎不是这里的情况。下面是总体思路,blackClicked 在 MouseListener 内切换。

所以我的问题是如何让 repaint() 摆脱其当前绘制的图像并从头开始。

另外,如果有更简单的方法来实现所有这些,请告诉我,制作 2 个图像副本是一项繁琐的工作。