gpt4 book ai didi

java - 将警告从后端代码传递到 Java 中的 Swing UI 的正确方法?

转载 作者:搜寻专家 更新时间:2023-11-01 03:20:33 24 4
gpt4 key购买 nike

我有一个正在为其构建 Swing UI 的项目。当加载文件等时,部分 UI 可能会调用后端类中的某些方法。获取用于填充 UI 字段的数据(到目前为止我还没有实现任何这些,因此是“大概”)。如果文件无效,这些方法可以抛出异常,UI 可以捕获这些异常并使用其中包含的信息来显示信息性错误对话框。到目前为止,还不错。

但我找到了一种方法,在这种方法中,文件在技术上是无效的,但我仍然能够使用后端的变通方法加载它们。我想警告用户这种情况,但仍然使用解决方法加载文件,因为这是在许多实际文件中出现的相对常见的错误。那么是否有一种公认的良好做法可以将警告的详细信息与数据一起从后端传递到前端?回调(以 lambda 表达式的形式)是对此的合理解决方案,还是传入一个带有要修改的字段的类?还是应该退回一对?这些方法都没有让我觉得特别“Java-y”,我想知道是否已经有一个可接受的模式。

最佳答案

通常的方法是从后端触发事件,然后在 GUI 端监听它们。这样,后端就有办法通知任何对其更改、警告、异常感兴趣的人——所有这些都完全不知道任何 GUI。 Swing GUI 和 Web 前端甚至可以轻松地同时使用相同的后端,一切都会很好地工作。

最基本的实现需要 Observer pattern这是每个 GUI 应用程序的核心。

但实际上,更好的解决方案是使用事件总线。事件总线是 the Mediator pattern 的交叉实现和上面提到的观察者,因为它同时做这两者。你触发一个事件,调解器捕获它,并将它重播给之前注册过的任何人。有关更多信息,请查看下面链接的页面,因为其中一些页面更详细地说明了事件总线是一件好事。

有几个实现,例如Guava EventBus ( wiki pages ), Square Otto ( pages ), Greenrobot EventBus ( pages ), MBassador , 或 Vert.x EventBus (pages)。

关于java - 将警告从后端代码传递到 Java 中的 Swing UI 的正确方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31680166/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com