我有一个对话框,用于存储使用 Java Swing 开发的应用程序的用户首选项。有 20 多个首选项,当特定首选项发生变化时,我想通知其他模块。我知道我可以保存一个听众列表,并在偏好发生变化时通知他们。不过,我想了解两个问题:
- 如何将 Swing 组件绑定(bind)到 Bean 对象,
- 当偏好设置发生变化时,如何触发事件,
根据您的经验,您将如何解决该架构?应遵循哪些最佳实践?
谢谢
最佳答案
我开发了一个 Swing 应用程序,用户可以修改一些参数来更改应用程序的功能或图形。
我是这样处理的:
- 通用
Setting
抽象类表示用户可以更改的单个值。 - 为不同类型的值创建子类,在我的例子中: boolean 值、整数、 float 、颜色等。
- 我使用 Map 来跟踪创建的
Setting
和Preferences
对象来存储值。
对于实际设置,我在某处创建一个静态属性(在我的例子中,是针对不同逻辑设置组的专用类),并使用该属性来读取和更改设置的值。
PRO:Settings
会跟踪实例化的所有设置,因此我不需要编写框架来更改它们两次,我只是以独立的方式根据设置的数量进行了一次更改设置
缺点:显然需要更改代码才能添加新设置。虽然在我的情况下这不是问题,因为仅由于代码中的其他更改才需要新的设置,但在您的情况下可能是问题。
关于java - 如何在 Swing 应用程序中设计用户首选项模块?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45368577/