java - 如何在 Swing 应用程序中设计用户首选项模块?

标签 java swing design-patterns architecture preferences

我有一个对话框,用于存储使用 Java Swing 开发的应用程序的用户首选项。有 20 多个首选项,当特定首选项发生变化时,我想通知其他模块。我知道我可以保存一个听众列表,并在偏好发生变化时通知他们。不过,我想了解两个问题:

  • 如何将 Swing 组件绑定(bind)到 Bean 对象,
  • 当偏好设置发生变化时,如何触发事件,

根据您的经验,您将如何解决该架构?应遵循哪些最佳实践?

谢谢

最佳答案

我开发了一个 Swing 应用程序,用户可以修改一些参数来更改应用程序的功能或图形。

我是这样处理的:

  • 通用Setting抽象类表示用户可以更改的单个值。
  • 为不同类型的值创建子类,在我的例子中: boolean 值、整数、 float 、颜色等。
  • 我使用 Map 来跟踪创建的 SettingPreferences 对象来存储值。

对于实际设置,我在某处创建一个静态属性(在我的例子中,是针对不同逻辑设置组的专用类),并使用该属性来读取和更改设置的值。

PRO:Settings 会跟踪实例化的所有设置,因此我不需要编写框架来更改它们两次,我只是以独立的方式根据设置的数量进行了一次更改设置

缺点:显然需要更改代码才能添加新设置。虽然在我的情况下这不是问题,因为仅由于代码中的其他更改才需要新的设置,但在您的情况下可能是问题。

关于java - 如何在 Swing 应用程序中设计用户首选项模块?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45368577/

相关文章:

java - 从Spring创建war文件:boot project in Eclipse

java - 将文本放入 BufferedImage

java - 构建这个复杂对象的设计模式

c# - 综合排序/分页/过滤服务层接口(interface)方法

oop - 在不破坏其他部分的情况下重构代码的最佳设计模式

java - 如何使用struts 2标签检查jsp中的list.contains

java - 浏览器 Java 插件检测

java - Java 中字节数组是否初始化为零?

java - 如何使用 Action 监听器从按钮获取背景颜色

java - 如何避免线程中出现 HeadlessException?