我正在开发一个应用程序,其中所有 UI 组件都是通过 XML 文件定义的。我阅读了 xml 并根据它组成了 UI。在用户进行一些更改后,会提供一个新的 XML 并相应地刷新 UI。现在我遇到了一些非常烦人的渲染问题,尤其是在几个滚动区域中,UI 的任何部分都被剪切(并且只有在我调整窗口大小时才可见)或者滚动条已经滚动到某个点,但它应该只是显示内容的顶部。
我认为这是一个事件调度线程问题,并在这里找到了一些非常有用的信息:http ://www.javapractices.com/topic/TopicAction.do?Id=153
您可以在此处阅读:“该线程(EDT)在组件实现后变为活动状态:pack、show 或 setVisible(true) 已被调用”
解析 XML 不在 EDT 中完成,并且还实例化组件并将它们添加到它们的父面板。只有在创建了所有组件之后,它们才会最终通过 EDT 添加到 MainPane。然而,在某些情况下,创建组件并将它们添加到面板中似乎已经启动了 EDT。所以事情变得一团糟。
是否有人详细了解哪些方法调用 pack、show 或 setVisible(true) 并因此启动 EDT?
非常感谢