0

我的 Java 应用程序不是很大,但我想以“正确的方式”来做。寻找建议不要把事情弄得一团糟……

我正在使用 Swing、Swing 应用程序框架和 H2 数据库。

它是具有不同选项卡的单框架应用程序。大多数选项卡将反映数据库中数据的某些方面。他们中的一些人将能够改变它。一些选项卡将具有将重定向到另一个选项卡的按钮或操作......基本上就是这样。

我想保持干净、便携和灵活(例如可以启用禁用某些选项卡或轻松添加一些选项卡)。

以下是问题:

1)当数据库内容发生变化时如何“刷新”标签?实现一些监听器接口?我应该定义那个接口还是已经存在我可以重用的东西?

2)如何将不同的选项卡“链接”在一起,以便轻松地从一个选项卡跳转到另一个选项卡(并且可能需要携带一些参数来将目标选项卡设置到正确的“视图”)

3)如果我在应用程序的另一部分设置了一些过滤器的偏好,我如何与整个应用程序共享这些设置?

当我问“如何”时,我的意思是“什么是最好的方法”......我已经可以让它工作......只是寻找合适的工具来使用,设计模式等。

4

3 回答 3

2

gui应用程序构建有不同的策略。这里有一些关于的文章。

于 2010-10-29T17:29:54.003 回答
1

如果使用 swing,您可以使用选项卡式窗格来进行表格布局。

实现一个监听器(如您计划的那样)。看看 Java 中的 observable 接口。

您可以实现一个单例(例如 PreferenceManager 类)来保存首选项并在应用程序中访问它以访问属性。

于 2010-10-29T17:33:56.057 回答
0

你真的想要一个推送模型,服务器必须保持与每个客户端的连接,然后在发生任何变化时更新它们吗?这对少数客户来说是可行的,但很快就会出现问题。使用拉模型可能更好,客户端手动(定期?)请求更新。这也是在数据库中使用带有 last_modified 字段的乐观锁定的好方法。尝试更新,如果自上次重新加载后发生更改,请警告用户并允许他们覆盖/合并。

对于一般的 Swing,最佳实践是将与 GUI 无关的所有内容分解到触发事件的核心类(“业务逻辑”)中。将所有 Swing 类注册为适当的事件侦听器并适当地更新 gui(SwingUtilities.invokeLater() 是你的朋友)。

于 2010-10-29T20:15:24.120 回答