【发布时间】:2011-03-27 04:12:11
【问题描述】:
我总是使用 C++ 编写控制台应用程序并学习了一些基本的 UML/模式技能。
现在我决定迁移到 Java 并在我的程序中添加 GUI。
第一个问题是程序设计中如何处理GUI层。我的意思是,我应该如何将所有 GUI 代码(添加组件、基本事件处理)与真正完成工作的代码(例如,按下某个按钮时)分开。
另一个与 EDT 相关的问题。我读到(几乎)所有 Swing 组件都必须在同一个线程(通常是 EDT)中运行,因为它们不是线程安全的。所以我认为如果“繁重的代码”是从(例如)ActionListener 调用的,那么 GUI 将在一段时间内变得无响应,直到“繁重的代码”完成。
这是非常不可取的,所以我认为自然的解决方案是在另一个线程中运行繁重的代码或执行类似的操作(我知道这必须小心完成,因为我不能再假设用户之后单击一个按钮,“深度操作”在处理另一个 GUI 事件之前完成)。
如您所见,我有很多关于如何在我的模式中包含 GUI 以保持完全独立且易于维护的问题;以及一些关于 Swing 组件和响应能力的特定问题。
【问题讨论】:
标签: java swing user-interface design-patterns