使用RxJava创建反应式JavaFx UI

在本文中,我想通过实际示例向您展示RxJava的好处-桌面JavaFx GUI应用程序。 如果您正在开发Android或同时“计算和呈现内容”的任何其他应用,请继续阅读!

An intro you can skip if you know JavaFx

If you never heard of JavaFx before don't feel bad. On the other hand, if you thought JavaFx project is long dead, well... I don't blame you. But believe it or not it's alive and kickin'. Since it was open-sourced and separated from JDK it has become the only reasonable choice for building desktop apps in Java.

为什么我在地球上写有关在2020年用Java创建桌面应用程序的技术?

我最初是在2013年被介绍给JavaFx的,当时它仍是JDK的一部分,并且是以前的UI库Swing的适当替代品,但是...让我不受欢迎。 但是JavaFx就像是轻而易举的事,引入了2.0版的概念XML文件文件,可让您以类似于HTML和CSS的方式定义组件的外观和样式。

为什么在地球上仍然有人想在2020年构建桌面应用程序?

有几个原因。 首先,某些用户仍然偏爱基于Web的服务。 如果没有Internet连接,则无法访问该站点(如果该站点未启用脱机功能)。 而且,这类应用程序非常适合与文件系统或底层OS进行通信(例如,我们有一个通过ssh连接并执行脚本的实用程序,其结果显示在UI中)。 我认为那里有很多好处,但这不是今天的主题。

Do you want to develop an app?

假设您正在用JavaFx编写简单的UI。 您定义布局,创建第一个组件,开始向其添加行为,然后您期望得到结果。 从技术上讲,一切正常,但是有时候感觉不对。 执行操作时,UI滞后,您会觉得自己做错了什么。

为了说明这一点,我创建了一个仅包含两个组件的简单应用程序:

  • 组合框(又称为SelectBox),每当用户选择不同的值时,它将执行一些后台任务列表显示这些长期运行的任务的结果。 此列表将显示任务的名称和执行时间(最多1秒)(按执行顺序)。 如果时间高于500毫秒,则会将其标记为慢。

执行此任务的代码非常简单(忽略结果现在,这只是一个简单的POJO):

private Result runTask(Integer i) {
    long currentTime = System.currentTimeMillis();

    String name = "Task" + i;
    long sleepDuration = (lon
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值