在JavaFX中后台执行任务

2024-03-12

我想在 TilePane 中加载最多九个面板。对于每个窗格,我必须首先运行内容计算(大约 300 毫秒),然后必须构建面板(大约 500 毫秒)。

我想要的是,有九个 ProgressIndicators 在计算后与每个面板进行交换。

我尝试过Platform.runLater命令以及服务类。结果总是一样的。显示 ProgressIndicator,但不显示动画。几秒钟后,所有面板立即出现。

是否有可能指标始终处于动画状态并且我可以依次交换它们?


JavaFX 有用于 UI 事件的事件调度线程。所有与 UI 相关的工作都应该在此线程上进行。并且非 UI 计算不应该发生在那里,以避免 UI 中的滞后。

看下一个代码:

public class Indicators extends Application {

    public static void main(String[] args) {
        launch(args);
    }

    @Override
    public void start(Stage stage) {
        Pane root = new HBox();
        stage.setScene(new Scene(root, 300, 100));

        for (int i = 0; i < 10; i++) {
            final ProgressIndicator pi = new ProgressIndicator(0);
            root.getChildren().add(pi);

            // separate non-FX thread
            new Thread() {

                // runnable for that thread
                public void run() {
                    for (int i = 0; i < 20; i++) {
                        try {
                            // imitating work
                            Thread.sleep(new Random().nextInt(1000));
                        } catch (InterruptedException ex) {
                            ex.printStackTrace();
                        }
                        final double progress = i*0.05;
                        // update ProgressIndicator on FX thread
                        Platform.runLater(new Runnable() {

                            public void run() {
                                pi.setProgress(progress);
                            }
                        });
                    }
                }
            }.start();
        }

        stage.show();

    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在JavaFX中后台执行任务 的相关文章

  • 服务作为 SOA 中的中介

    我知道什么是 通常的 中介设计模式 维基百科中有一些描述 http en wikipedia org wiki Mediator pattern http en wikipedia org wiki Mediator pattern 在我的
  • 通过等待任务或访问其 Exception 属性都没有观察到任务的异常

    这些是我的任务 我应该如何修改它们以防止出现此错误 我检查了其他类似的线程 但我正在使用等待并继续 那么这个错误是怎么发生的呢 通过等待任务或访问其 Exception 属性都没有观察到任务的异常 结果 未观察到的异常被终结器线程重新抛出
  • 标签文字位置

    我有一个带有图像和文本的标签 final Label label new Label labelText label setTextAlignment TextAlignment CENTER ImageView livePerformIc
  • 如何调试symfony2服务容器中配置的标签和服务?

    我正在编写一个服务来处理 AccessDeniedException 并且我找到了一种方法来解决它使用 Symfony2 的 AccessDeniedHandlerInterface https stackoverflow com ques
  • Symfony2 条件服务声明

    我目前正在尝试找到一个可靠的解决方案来动态更改 Symfony2 服务的依赖关系 详细信息 我有一个服务 它使用 HTTP 驱动程序与外部 API 进行通信 class myAwesomeService private httpDriver
  • 从 BLE 设备同步读取多个特征(Android 推荐方法)

    我正在开发一个从 BLE 设备读取数据的 Android 应用程序 我在这里遇到了很多关于如何读取多个特征的解决方案 其中大多数都建议使用队列 我确实实现了 Queue 方法 并且我的代码中的一切都按预期正常工作 我开始这个帖子的原因是为了
  • 如何为有时异步的操作创建和实现接口

    假设我有数百个类 它们使用 计算 方法实现公共接口 一些类将执行异步 例如读取文件 而实现相同接口的其他类将执行同步代码 例如将两个数字相加 为了维护和性能 对此进行编码的好方法是什么 到目前为止我读到的帖子总是建议将异步 等待方法冒泡给调
  • C++ 绑定方法队列(任务管理器/调度程序?)

    是否有方法 模式 库可以执行类似的操作 以伪代码形式 task queue push back ObjectType object1 method1 task queue push back OtherObjectType object2
  • 在 Android KitKat 中接收彩信

    所以这个视频Android 4 4 短信 API http www youtube com watch v mdq0R2WQssQ DevBytes 解释了 KitKat 中 SMS API 的最新变化 他们还提供了示例项目的链接 http
  • Sharepoint Server 对于 Excel Services 或 Excel Web Access 是必需的吗

    Excel Services 和 Excel Web Access 随 Microsoft Office SharePoint Server 2007 一起提供 我想知道是否可以在不运行 Sharepoint Server 的情况下使用 E
  • 清理 TPL 中的 CallContext

    根据我使用的是基于 async await 的代码还是基于 TPL 的代码 我在逻辑清理方面得到了两种不同的行为CallContext 我可以设置和清除逻辑CallContext如果我使用以下异步 等待代码 正如我所期望的 class Pr
  • 多次调用 startService 时实际会发生什么

    我正在打电话startService 多次对同一服务有不同的意图 很明显 任何时候都只存在一个服务实例startCommand 被称为每个startService 我的问题是 调用时有性能影响吗startService 多次 意图会按照调用
  • JavaFX 2.0 FXML 子窗口

    经过多次搜索我发现了这个问题如何创建 javafx 2 0 应用程序 MDI https stackoverflow com questions 10915388 how to create a javafx 2 0 application
  • 了解 IServiceProvider 和 QueryService

    谁能解释一下背后的想法IServiceProvider and QueryService 我不明白服务是什么以及它与其他类型的对象或接口有何不同 我看到的解释很少 主要是一些评论here https learn microsoft com
  • 在 Javafx 中单击内部时,透明舞台不应最小化

    我正在学习在 JavaFx 中创建屏幕录制应用程序 我希望用户调整矩形的大小来决定屏幕捕获区域 我已将舞台和场景设为透明primaryStage initStyle StageStyle TRANSPARENT and scene setF
  • 在 Android Studio 中调试服务的正确方法?

    在 Android Studio 中调试服务有正确的方法吗 或者 Android Studio 无法做到这一点 当我尝试调试时 它只会断开套接字 与目标虚拟机断开连接 地址 localhost 8600 传输 socket 希望你能在这里帮
  • JavaFX:setWrapText(true) (WordWrap) 在 ListView 中不起作用

    在 ListView Cell 中激活 WordWrap 时 文本不会换行 这是一个例子 public class ListBug extends Application public static void main String arg
  • 如何平滑拖动JavaFX多边形?

    我有一个多边形 三角形 我想让它可以用鼠标拖动 下面是我尝试过的代码 但是使用此代码我无法顺利拖动它 请让我知道如何才能使其顺利拖动 public void start Stage primaryStage throws Exception
  • Android 中的计时器任务在无限期时间后停止运行

    我是安卓新手 我正在开发一个应用程序 其中一段特定的代码在后台每 5 秒后执行一次 为了实现这一目标 我使用带有定时器的服务 其中包含定时器任务 有时它工作正常 但经过一段时间后 我的服务正在运行 但计时器任务在 android 中自动停止
  • Javafx过滤表视图

    我正在尝试使用文本字段来过滤表视图 我想要一个文本字段 txtSearch 来搜索 nhs 号码 名字 姓氏 和 分类类别 我尝试过在线实施各种解决方案 但没有运气 我对这一切仍然很陌生 所以如果问得不好 我深表歉意 任何帮助将不胜感激 我

随机推荐

  • 如何使用 glDrawTex*

    我想拍摄一张 png 图像并将其用作 GLView 的背景 我听说 glDrawTex 是最好的方法 但我在互联网上搜索过 但没有找到一个如何使用它的示例 至少没有一个对我有用 有什么帮助吗 虽然OES draw texture 扩展 ht
  • 在 botframework 网络聊天中发送消息(来自建议)后,如何清除聊天输入框?

    我正在使用 React js 和 botframework 网络聊天开发一个机器人应用程序 问题是我想在发送消息后清除文本输入框 从发送消息的位置 这是从建议中选择的 建议列表 或自动完成组件 是自定义编码的列表 我的意思是 如果我输入 h
  • 以一种形式以编程方式发送多个文件输入字段

    我正在尝试使用blueimp jQuery 文件上传 https github com blueimp jQuery File Upload插件以编程方式通过同一表单发送多个文件输入字段 当用户选择表单文件时 它只是将它们附加到 JS 变量
  • 熊猫爆炸 - 无法从重复轴重新索引

    假设我有一个数据框df C1 C2 C3 C4 C5 0 A 1 s1 123 t1 1 A 1 s2 321 t2 2 A B 1 2 s3 777 111 t3 3 B 2 s4 145 t4 4 B 2 s5 990 t5 5 A B
  • C# 中的 switch 语句和“需要一个常量值”

    为什么编译器对第一种情况说 需要一个常量值 第二种情况工作正常 switch definingGroup case Properties Settings Default OU HomeOffice do something break c
  • Matplotlib:如何加载和显示 PDF 图像

    我的问题很简单 我有一个 PDF 图形 我想与一些数据分析的结果一起显示 然而 即使是广泛的 Google 搜索也没有找到一种在图中加载和显示 PDF 的方法 我只找到了 JPG 或 PNG 等光栅图像的标准结果 提前致谢 我不认为 Mat
  • WordPress 插件:如何添加自定义 URL 处理程序

    我正在尝试编写一个 Wordpress 插件 但似乎无法弄清楚如何修改 URL 的处理方式 例如 任何请求
  • 无法中断 for 循环:非语法中断

    我想要break a for loop当满足某个条件时 Object keys s map uk gt Object keys s uk map ik gt for let i 1 i lt data length i if s uk ik
  • 尝试获取文件夹的子级时出现 MS Graph API 未知错误

    当尝试使用 Microsoft Graph API 相对路径访问共享点站点驱动器中的特定文件夹时 出现未知错误 这个完全相同的请求在一周前工作正常 但本周再次使用时停止工作 测试结果是我网站驱动器上的一个文件夹 根据OneDrive 开发文
  • Active Admin - 用户和管理员的模型相同

    我希望让 Active Admin 为网站做后端 不过 我真的不想为用户和管理员用户建立单独的模型 如果用户模型中有 is admin 标志 我可以只让管理员用户登录到 Active Admin 吗 如果用户不是管理员 他们应该只能登录网站
  • 当包含某些列时,MySQL ORDER BY AVG() DESC 不起作用

    我正在执行一个查询以返回 table1 中的所有行以及 table2 中的平均评分 SELECT table1 description AVG table2 rating AS avg rating FROM table1 LEFT JOI
  • 在 Jenkins 的节点/标签限制中放置通配符/正则表达式

    在作业配置中 有一个复选框 限制该项目可以运行的位置 如果选择它 则会有一个关于标签表达式的输入字段 有没有办法在那里插入正则表达式 而不是确切的名称 如果是 您能提供一个例子吗 这背后的整个概念是 我想将限制作业分配给自动创建的具有相似名
  • 每天在设定时间用 Swift 发出通知? [复制]

    这个问题在这里已经有答案了 如果有人感到困惑并认为这是我昨天的问题的重复 那么事实并非如此 那里我问的是如何每天调用一个函数 这里我问的是如何在每天的特定时间调用通知 我正在寻找一种每天早上 7 点重复本地通知的方法 我目前有这个代码设置来
  • REST Datasnap 覆盖 URI 映射

    我用 delphi XE2 中的 REST datasnap 编写了一个小型 REST 服务器 HTTP 方法 POST PUT 等 和 delphi 中定义的函数之间有一个默认映射 这是由 delphi 组件完成的 这个维基条目 http
  • 如何在ARMv8-a上启用Aarch32指令集?

    Raspberry Pi 3 使用具有 ARMv8 A53 内核的 Broadcom SoC https www raspberrypi org magpi raspberry pi 3 specs benchmarks 它还使用基于 De
  • 如何启动声纳库?

    为了我的学习 我需要在 ubuntu 服务器上安装 sonarqube 我按照本教程安装了它 http www naturalborncoder com methodology 2015 05 27 sonarqube on ubuntu
  • 如何减少WorkManager中Periodic WorkManager的时间

    In PeriodicTimeRequest最短周期时间为 15 分钟 我想将其从 15 分钟减少到 15 分钟以内 我该怎么做 我们有一个技巧可以减少 15 分钟的定期运行时间 但您不能使用PeriodicWorkRequest 创建具有
  • 在散点图中为每个类别绘制不同的聚类标记

    我有一个散点图 其中绘制了 14 个簇 但每 2 个簇属于同一类 它们都使用相同的标记 每 50 行是一个簇 每 100 行是同一类的两个簇 我想要做的是更改每 2 个簇或 100 行的标记 数据框链接 http www mediafire
  • 如何让文字逆时针方向书写

    如何使文字逆时针书写 function drawTextAlongArc context str centerX centerY radius angle context save context translate centerX cen
  • 在JavaFX中后台执行任务

    我想在 TilePane 中加载最多九个面板 对于每个窗格 我必须首先运行内容计算 大约 300 毫秒 然后必须构建面板 大约 500 毫秒 我想要的是 有九个 ProgressIndicators 在计算后与每个面板进行交换 我尝试过Pl