jjzjj

Invalidate

全部标签

Java Swing : repaint() vs invalidate

这个问题在这里已经有了答案:关闭11年前。PossibleDuplicate:JavaSwingrevalidate()vsrepaint()大家好我正在努力使我的程序在正确的时间刷新。并没有取得很大的成功哈哈我有两个问题Q1:当我的界面发生变化时,我应该使用哪个:重绘还是失效?Q2:什么时候调用?我知道这听起来很愚蠢,但实际上我遇到了问题,因为SwingWorker和其他线程操作。

android - forceLayout()、requestLayout() 和 invalidate() 的使用

我对forceLayout()的角色有点困惑,requestLayout()和invalidate()View的方法类。什么时候叫他们? 最佳答案 为了更好地理解FrançoisBOURLIEUX提供的答案和Dalvik我建议你看看ArpitMathur提供的这个很棒的View生命周期图。: 关于android-forceLayout()、requestLayout()和invalidate()的使用,我们在StackOverflow上找到一个类似的问题: h

android - forceLayout()、requestLayout() 和 invalidate() 的使用

我对forceLayout()的角色有点困惑,requestLayout()和invalidate()View的方法类。什么时候叫他们? 最佳答案 为了更好地理解FrançoisBOURLIEUX提供的答案和Dalvik我建议你看看ArpitMathur提供的这个很棒的View生命周期图。: 关于android-forceLayout()、requestLayout()和invalidate()的使用,我们在StackOverflow上找到一个类似的问题: h

ios - iOS 中的 self.timer = nil 与 [self.timer invalidate] 有什么区别?

谁能给我解释一下self.timer=nilvs[self.timerinvalidate]?self.timer的内存位置到底发生了什么?在我的代码中self.timer=nil不会停止计时器但是[self.timerinvalidate]停止计时器。如果您需要我的代码,我也会更新它。 最佳答案 一旦不需要运行计时器,就使计时器对象无效,之后就不需要取消其引用。Apple文档是这样说的:NSTimerOncescheduledonarunloop,thetimerfiresatthespecifiedintervaluntilit

c++ - 相当于 X11 中的 "Invalidate Rect"/"WM_PAINT"

我正在将一些代码从Windows移植到XLib。在Windows代码中,我可以通过调用InvalidateRect然后处理相应的WM_PAINT消息来强制重绘。但是,我无法找到如何在X11/XLib中执行此操作。我看到有一条Expose消息,但不确定这是否是同一回事。如果重要的话,我需要执行此操作以强制窗口以某个基于OpenGL的程序的帧速率呈现。 最佳答案 稍微扩展BЈовић给出的有用答案,使用原始Xlib,您可以随时在单个线程中绘制,因为每个Xlib函数都指定了完整的显示、窗口和上下文。AFAIK,有了多线程,所有的赌注都没有

android - 何时需要在 View 上执行 invalidate()?

我对thisquestion的回答刚刚被接受,但我开始想知道什么时候需要invalidate()View,什么时候不需要?经过一番思考,我意识到它应该或多或少地像这样工作:“一切”的实际绘制发生在onResume()之后在“空闲”时间可以重绘屏幕的某些部分,但只能重绘那些无效(以及下面的所有内容)因此,如果我在onResume()之后更改某些内容(例如,作为对按钮单击的响应,我应该invalidate()更改的>查看)。但是,从thisquestion中的什么扫描说,它一定比那更复杂,而且它有时取决于一个人使用什么方法。例如关于是否使用lastClicked.setImageBitma

android - 为什么在 invalidate() 之后不调用 onDraw?

我在stackoverflow上找到了很多帖子,但我仍然无法解决我的问题。这是我的代码fragment:publicclassMyViewextendsRelativeLayout{Buttonb1;Buttonb2;ContextsContext;publicstaticinti=0;privateintw=400;privateinth=400;privateintw2=100;privateinth2=100;publicMyView(Contextcontext){super(context);sContext=context;init();}publicMyView(Cont

java - Swing GUI 中 validate()、revalidate() 和 invalidate() 之间的区别

Swing组件有多种与屏幕布局更新相关的方法,特别是:validate()invalidate()revalidate()Java文档从技术角度对这些进行了一定程度的定义,但并不清楚它们的用途。这些有什么区别,在什么情况下你应该使用其中一个而不是其他的? 最佳答案 invalidate()将容器标记为无效。表示内容在某种程度上是错误的,必须重新布局。但这只是一种标记/标志。可能需要稍后刷新多个无效容器。validate()执行重新布局。这意味着所有尺寸都要求无效内容,并且所有子组件的尺寸都由LayoutManager设置为适当的值。

java - Swing GUI 中 validate()、revalidate() 和 invalidate() 之间的区别

Swing组件有多种与屏幕布局更新相关的方法,特别是:validate()invalidate()revalidate()Java文档从技术角度对这些进行了一定程度的定义,但并不清楚它们的用途。这些有什么区别,在什么情况下你应该使用其中一个而不是其他的? 最佳答案 invalidate()将容器标记为无效。表示内容在某种程度上是错误的,必须重新布局。但这只是一种标记/标志。可能需要稍后刷新多个无效容器。validate()执行重新布局。这意味着所有尺寸都要求无效内容,并且所有子组件的尺寸都由LayoutManager设置为适当的值。

说透缓存一致性与内存屏障

故事还得从一个矛盾说起。摩尔定律告诉我们:大约每18个月会将芯片的性能提高一倍。芯片的这种飞速发展直接导致了芯片的指令执行速度与内存读取速度之间的巨大鸿沟。举个例子,CPU在1纳秒之内可以执行几十条指令,但是从内存中读取一条数据就需要花费几十纳秒。这种数量级的差异便是计算机中的一个主要矛盾:CPU日益增长的对数据快速读取的需要和I/O设备读取速度不平衡不充分的发展之间的矛盾而CPU运行所需要的指令和数据都存储在低速的内存中,人们无法容忍让CPU这样宝贵的高速设备进行漫长的等待。计算机科学领域的任何问题都可以通过增加一个中间层来解决。所以需要一个比内存更快的存取设备做缓冲,尽量做到和CPU一样快