gpt4 book ai didi

java - 关于通过 PropertyChangeSupport 更新 Swing GUI 的设计问题

转载 作者:行者123 更新时间:2023-12-04 06:42:16 24 4
gpt4 key购买 nike

过去,我使用 PCS 更新显示某些字段的 Swing 元素,并且一切都按预期工作。然而,我现在面临着一个相对复杂(换句话说,设计得非常糟糕)的 UI,它显示了很多字段。数据更新成束出现(一个包含大约 1,000 个字段的新值的网络数据包),我想知道处理这样的事情的正确方法是什么。

我主要担心的是,每当数据包到来时,都会触发 1,000 个 PropertyChangeEvents,从而导致 1,000 个 .repaint()(或 .revalidate() 或其他)。更谨慎的方法似乎是做类似“gui.stopRepainting(); fireAllThePropertyEvents(); gui.restartPainting();”之类的事情。有没有办法做到这一点,或者有没有更好的方法来处理这个问题?

最佳答案

重绘请求被传递给 RepaintManager,后者又将多个请求合并为一个重绘。

我觉得很奇怪你有 1000 个单一表单的字段。假设这实际上是真的,那么我怀疑所有 1000 将同时可见。我相信 RepaintManager 只会绘制可见的那些,所以开销可能没有你想象的那么糟糕。

我不知道有什么方法可以停止重绘,但也许您可以使 Pane 不可见,进行更新,然后使其再次可见。

或者你可以创建一个自定义的 RepaintManager 什么都不做。您安装它,进行更新,然后重新安装默认管理器。

关于java - 关于通过 PropertyChangeSupport 更新 Swing GUI 的设计问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4091799/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com