Java 远程接口(interface)阻止使用我的 GUI

标签 java javafx interface rmi observable

我已经提供了一个银行应用程序,我应该对其进行修改,以便在每个 GUI 屏幕上更新帐户余额。在我的示例中,这应该使用 RMI(Observable) 来完成。我已经完成了这项工作,至少,我几乎可以肯定这一点。

有一个名为IBankingSession 的REMOTE 接口(interface)。 此 REMOTE 接口(interface)应具有类似 setGUI(BankSessionController) 或类似方法的方法。但是,这是不可能的,因为 JavaFX 部分不是SerializableIBankingSession 与 GUI 没有任何关系。 如何将 IBankingSession 的实例链接到此 GUI?所以我可以从这个实例更新 GUI 吗?在REMOTE界面做一个setGUI这样的方法也感觉怪怪的。因为 GUI 当然与创建 session 的屏幕位于同一屏幕上。

我很好奇一些好主意。提前致谢。

IBankingSession session = desk.logIn(tfAccount.getText(), tfPassword.getText());

最佳答案

首先:您不想将您的“远程”事物直接链接到使用它的本地客户。那个 IBankingSession 对您的客户想要使用 JavaFx 在用户屏幕上放置一些东西这一事实一无所知。

相反,尝试这样的事情:定义一个允许回调的接口(interface)(换句话说:某种“推送”模型):

客户端向远程服务器注册;告诉它:“我对余额更新感兴趣”。

然后,根据“余额”更新,远程服务将该信息推送给每个客户端。

现在每个客户都会收到通知;然后可以决定如何处理传入的更新;例如更新一些 JavaFx UI 组件;或者,将它们记录到一些持久存储中 - 为您提供一种可能对各种不同用例有用的机制。

关于Java 远程接口(interface)阻止使用我的 GUI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37610733/

相关文章:

java - Spring 交易不起作用?

java - Ubuntu : change the path from OpenJDK 6 to Oracle JDK 7

java - 在 Javafx 中切换场景时如何保持窗口大小?

go - 将配置结构加载到go后,访问嵌套属性的问题

java - 如何将 PrettyPrintingJsonGeneratorDecorator 和 MaskingJsonGeneratorDecorator 结合在一起?

java - 将文件过滤器添加到 Jython 中的 JavaFx Filechooser 并对其进行参数化

java - 如何在JavaFX中一一显示StrokeTransition的ArrayList?

Javafx 表加载正确的行数,但加载重复的数据。我错过了什么吗?

java - 回调和接口(interface)的区别

c# - 我可以在同一个命名空间中使用同名的类和接口(interface)吗?