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

时间:2017-07-28 08:30:16

标签: java swing design-patterns architecture preferences

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

  • 如何将Swing组件绑定到bean对象
  • 如何在首选项更改时触发事件

根据您的经验,您将如何解决该架构?要遵循哪些最佳做法?

由于

1 个答案:

答案 0 :(得分:1)

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

我这样接近:

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

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

PRO:Settings跟踪实例化的所有设置,因此我不需要对帧进行编码以便更改它们两次,我只是以与设置数量无关的方式进行了一次< / p>

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