繁体   English   中英

JavaFX - 如何连接后端和前端?

[英]JavaFX - How to connect back-end and front-end?

我正在为Pic16F84μC开发一个简单的基于Java的MCU仿真。 该模拟器分为两部分:

  • μC模拟(内存,CPU,ALU等)
  • 用于显示内存内容等的图形用户界面(JavaFX)

如何以反应方式将模拟器与UI连接? 我想将μC仿真开发为JavaFX独立单元。 这意味着我希望使用JavaFX的相关财产类的模拟器类的内部类字段。

例如,假设我将以下控制器类绑定到FXML视图:

public class SimulatorController implements Initializable {

    @FXML private Label memoryContent;
    private Pic16F84Simulator simulator;

    ...

    public SimulatorController() {

        simulator.getMemory().addPropertyChangeListener(event -> {

            memoryContent.setText((String) event.getValue());
        }
    }
}

我正在使用PropertyChangeListener来更新被动。 当然,大多数时候听众逻辑并不那么简单。 所以代码库增长得非常快。

是否有更优雅的方式将JavaFX UI与独立于UI的后端类连接起来? 独立我的意思是我可以提取模拟器实现而没有任何剩余的JavaFX依赖。

如果您希望您的应用程序具有反应性,请考虑在后端使用RxJava(但是,还有其他反应库, Java反应框架的比较

我建议你使用RxJava( http://reactivex.io/简介 )。 一开始这很困难,但是一旦你得到它,你就可以在很多平台上访问这个库(ruby,javascript,java等, http://reactivex.io/languages.html

您需要了解的最重要的事情是Observable( 通用文档 | Java文档 )。 然后使用RxJava api(很可能你会想要使用subscribe方法)实现监听器,类似于你发送的代码片段。

一些博客阅读:

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM