问题标签 [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 投票
2 回答
8366 浏览

java - Swing:无法让 JButton 更新 - repaint() 不起作用

我第一次使用 Swing 来创建一个简单的 GUI。它由一个JFrame我放置在其上的单个JButton组成,当单击它时,它会调用一些其他代码,该代码大约需要。3秒返回。

就在调用此代码之前actionPerformed(),我想更新按钮上的文本以通知用户正在进行处理。我的问题是按钮上的文本直到 3 秒调用返回后才会更新。我希望在通话期间出现更新的文本,然后我会在之后将其更改回来。

调用不会做任何事情,并repaint()在我单击按钮时抛出" " 的结果。JButtonJFrameException in thread "AWT-EventQueue-0" java.lang.NullPointerException

0 投票
3 回答
6462 浏览

java - Java 重绘无法正常工作

我使用 java repaint 方法,它会重新绘制,但只有当我单击画布或调整面板大小时才能看到更新。我怎样才能解决这个问题 ?是什么原因造成的?

0 投票
1 回答
1764 浏览

user-interface - Blackberry -- 更新屏幕更改管理器其字段元素的绘制顺序

场景
在一个屏幕中,我有 2 个管理器:1)顶部的菜单管理器和 2)具有信息/按钮元素的正文管理器。菜单管理器进行自定义绘图,以便其菜单元素(LabelFields)的间距适当。

核心问题 - 管理器和子字段绘制顺序
屏幕绘制良好,除非用户执行操作(单击按钮)导致添加/删除带有主体管理器的元素。一旦从正文中添加/删除字段元素,绘制菜单的顺序就会混淆。

当主体管理器添加或删除一个字段时,菜单管理器不是先绘制自身再绘制其子元素(标签字段),而是菜单管理器开始绘制其子元素,然后再绘制自身;因此在标签字段的顶部进行绘画,使它们看起来像是消失了。

评论
已经尝试过 invalidate 和其他选项——在从正文中添加/删除字段元素后,我尝试调用 invalidate、invalidateall、updateDisplay...。都没有成功。

删除自定义子布局有效——我可以解决此问题的唯一方法是删除菜单管理器自定义子布局逻辑。不幸的是,菜单系统以传统方式绘制并且没有提供足够的间距。

下面是菜单管理器的子布局代码,我在这里遗漏了什么吗?

最后的问题
最终我想保留菜单管理器的自定义布局,同时允许重绘字段元素。这是我最后的问题:

  1. 你以前有过这种经历吗?

  2. 当向屏幕添加/删除字段元素时,为什么菜单管理器会以错误的顺序开始绘制?

  3. 本机 Manager.sublayout() 是否会做一些我不会维护绘图顺序的事情?

0 投票
2 回答
757 浏览

c# - 表单不重新绘制自身

如何使 FileOpenDialog 消失?

[编辑:解决]

使用即发即弃的方法

0 投票
2 回答
2819 浏览

winforms - 禁用winforms刷新

每次我更改 winform 上控件的启用禁用属性时,它都会重新绘制整个表单。我想通过仅在更新所有控件后重新绘制来避免多余的重新绘制。这可能吗?

0 投票
1 回答
1798 浏览

java - 如何在 JScrollPane 上禁用滚轮滚动事件的默认绘制行为

我最近购买了《肮脏的富客户》这本书,我发现它非常有用和有趣。基于书中的一个示例,我尝试实现一个自定义 ScrollPane,它在要显示的组件的视图底部显示一个“阴影”。我最终得到了下面的代码。它有效,但并不完美。特别是当我通过拖动滚动条滚动窗格时,一切正常,绘画非常流畅。但是当我用鼠标滚动时,阴影会闪烁,我不知道为什么。谁能帮我?

编辑:滚动窗格中的任何组件都会发生同样的事情。编辑代码以显示两个框架以查看问题。

编辑 2:我已将问题与滚动窗格处理鼠标滚轮事件的方式隔离开来。滚动滚动窗格时,根据滚动的方向稍微向上或向下复制视口的内容,然后绘制进入视图的区域。我的代码使整个组件“变脏”,但那是在组件移动内容之后。因此,在发出重绘之前,您会暂时看到“阴影”渐变不合适。关于如何禁用此功能的任何想法?

0 投票
5 回答
975 浏览

java - 如何在 Swing 中组合重绘?

我从听众那里多次调用重绘,但我设计我的绘画功能的方式是只需要一次重绘。我生成了一堆重绘,因为它连接到了我的鼠标运动监听器。

有没有办法取消某个组件的所有挂起的重绘?我不能只是开始忽略重绘,因为有些重绘是有效的,例如当您调整框架大小或从最小化恢复它时。

我为什么在乎?因为我的绘制代码非常繁重,我无法以非常高的 FPS 进行完全重绘。

0 投票
1 回答
324 浏览

java - 在java中检测屏幕的重绘区域

我正在创建一个小程序,它将执行类似屏幕共享的操作。为此,我正在使用 Robot 类来捕获屏幕区域。我想在第一次屏幕截图后捕获脏/重绘区域。我认为 RepaintManager 管理器可以用于此。但我不知道如何使用它。我是新手,所以 java 代码会很有帮助。谢谢

0 投票
3 回答
3313 浏览

wpf - 强制重绘 WPF 控件

我目前尝试为类似绘画的 WPF 应用程序创建类。我必须基类 LineMovement(从 StartPoint 到 EndPoint 的线)和 PathMovement(穿过 PointCollection 类型的属性 Points 中指定的所有点的线)。这些类从 Control 继承并通过 ControlTemplate 获得它们的外观。

ControlTemplate 还将 Adorner 添加到 Movement 对象的 AdornerLayer 中,其中包含用于特定线的每个可移动点的小视觉标记。这些标记支持用鼠标拖动。

我遇到的问题是,我的运动类在移动它们的点时不会重新绘制。我用 Mole 调试了我的代码,发现用于可视化线条的折线获取了更改的点值(在其 Points 属性中可见),但它只是没有重新绘制。

如何强制重绘 WPF 控件?

0 投票
4 回答
8115 浏览

c# - 平滑滚动的 .net 表单

嗨,我在 .net 中使用表单,并且在运行时动态添加了许多链接标签,我将这些链接标签添加到面板并将该面板添加到 winform。当链接标签的数量增加时,表单会显示一个自动滚动条(垂直)...现在,当我使用该自动滚动向下滚动时,表单不会在滚动时更新其视图,只有在我停止滚动时才会刷新表单...此外,当它刷新时,它看起来太糟糕了..我可以看到它是如何缓慢绘制的....

以前有人处理过这个吗??

我在滚动事件处理程序中尝试了 form.refresh() 但这似乎没有帮助..

有什么线索吗?