从 ExecutorService 更新 JProgressBar

2024-01-10

我正在使用 Java ICMP ping 功能对网关进行 ping 操作。为了执行快速 ping,我使用 ExectorService 创建用于 ping 的线程。地址被 ping(或不)后,我想在 ping 后更新 Jprogressbar。我有这段代码正在运行,但它会在作业(ping 线程)完成之前更新 Jprogressbar。我想在工作完成后更新 jprogressbar。

private int NUM_THREADS = Runtime.getRuntime().availableProcessors();
ExecutorService exec = Executors.newFixedThreadPool(NUM_THREADS);
public void run() {
    int JProgressBarValue = 0;
    for (;GateWayKey<=GateWayKeyStop;GateWayKey++){
        ip="192.168."+GateWayKey+".1";
       exec.submit((new PingTask(ip,GateWayKey,true,scanFrameRefrence,ttl)));
       JProgressBarValue=(GateWayKey/GateWayKeyStop)*100;
       scanFrameRefrence.progressBar.setValue(JProgressBarValue);
       scanFrameRefrence.progressBar.repaint();
    }}

首先,不能从事件分派线程外部使用 Swing 组件。因此,更新进度条的代码必须包含在里面

SwingUtilities.invokeLater(new Runnable() {
    @Override
    public void run() {
        scanFrameRefrence.progressBar.setValue(value);
    }
});

现在,回答问题。如果您想在任务完成时更新进度条,更简单的方法是让任务本身在执行结束时更新进度条。

另一种方法是使用执行者完成服务 http://docs.oracle.com/javase/6/docs/api/java/util/concurrent/ExecutorCompletionService.html,当每个任务完成时可以收到通知(感谢阻塞队列)。

另外,请考虑发布实际的编译代码并遵守 Java 命名约定:变量以小写字母开头。

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

从 ExecutorService 更新 JProgressBar 的相关文章

  • JDK 文档是语言规范的一部分吗?

    只有一名官员Java语言规范 https docs oracle com javase specs jls se8 html index html所有 Java 实现都必须遵守它 API文档怎么样 所有Java实现都需要遵守吗这个版本 ht
  • Java Runtime.getRuntime().freeMemory() 问题

    我搜索并看到了一些线程 但没有一个能够解决我遇到的具体问题 我正在尝试使用以下方式监视我的内存使用情况Runtime getRuntime freeMemory Runtime getRuntime maxMemory and Runtim
  • Spring Security 自定义过滤器

    我想自定义 Spring security 3 0 5 并将登录 URL 更改为 login 而不是 j spring security check 我需要做的是允许登录 目录并保护 admin report html 页面 首先 我使用教
  • Java:在 eclipse 中导出到 .jar 文件

    我正在尝试将 Eclipse 中的程序导出到 jar 文件 在我的项目中 我添加了一些图片和 PDF s 当我导出到 jar 文件时 似乎只有main已编译并导出 我的意愿是如果可能的话将所有内容导出到 jar 文件 因为这样我想将其转换为
  • 在 Wildfly 中与 war 部署共享 util jar 文件

    假设我有一个名为 util jar 的 jar 文件 该 jar 文件主要包含 JPA 实体和一些 util 类 无 EJB 如何使这个 jar 可用于 Wildfly 中部署的所有 war 无需将 jar 放置在 war 的 WEB IN
  • 大数据使用什么数据结构

    我有一个包含一百万行的 Excel 工作表 每行有 100 列 每行代表一个具有 100 个属性的类的实例 列值是这些属性的值 哪种数据结构最适合在这里使用来存储数百万个数据实例 Thanks 这实际上取决于您需要如何访问这些数据以及您想要
  • 如何在代理后面安装 Eclipse Neon

    对于 Neon Eclipse 附带了一个安装程序 我在安装程序中找不到任何配置菜单 我的java版本是 java version java version 1 8 0 72 Java TM SE Runtime Environment b
  • 如何根据运行的 jar 的结果让我的 ant 任务通过或失败?

    我正在运行 CrossCheck 无浏览器 js 单元测试 作为 ant 脚本的一部分 如果 CrossCheck 测试失败 我希望 ant 报告失败 这是 build xml 中的相关部分
  • 什么时候可以在 Java 中使用 Thead.stop() ?

    Thread stop 的 Java 文档听起来好像如果您调用 Thread stop 世界就会终结 已弃用 这种方法本质上是不安全的 停止线程 Thread stop 导致它解锁所有已锁定的监视器 作为未经检查的 ThreadDeath
  • Spring Security SAML2 使用 G Suite 作为 Idp

    我正在尝试使用 Spring Security 5 3 3 RELEASE 来处理 Spring Boot 应用程序中的 SAML2 身份验证 Spring Boot 应用程序将成为 SP G Suite 将成为 IDP 在我的 Maven
  • ConcurrentHashMap 内部是如何工作的?

    我正在阅读有关 Java 并发性的 Oracle 官方文档 我想知道Collection由返回 public static
  • 自动生成Flyway的迁移SQL

    当通过 Java 代码添加新模型 字段等时 JPA Hibernate 的自动模式生成是否可以生成新的 Flyway 迁移 捕获自动生成的 SQL 并将其直接保存到新的 Flyway 迁移中 以供审查 编辑 提交到项目存储库 这将很有用 预
  • 如何使用 Hibernate (EntityManager) 或 JPA 调用 Oracle 函数或过程

    我有一个返回 sys refcursor 的 Oracle 函数 当我使用 Hibernate 调用该函数时 出现以下异常 Hibernate call my function org hibernate exception Generic
  • 套接字的读写如何同步?

    我们创建一个套接字 在套接字的一侧有一个 服务器 在另一侧有一个 客户端 服务器和客户端都可以向套接字写入和读取 这是我的理解 我不明白以下事情 如果服务器从套接字读取数据 它在套接字中是否只看到客户端写入套接字的内容 我的意思是 如果服务
  • 如何避免 ArrayIndexOutOfBoundsException 或 IndexOutOfBoundsException? [复制]

    这个问题在这里已经有答案了 如果你的问题是我得到了java lang ArrayIndexOutOfBoundsException在我的代码中 我不明白为什么会发生这种情况 这意味着什么以及如何避免它 这应该是最全面的典范 https me
  • Freemarker 和 Struts 2,有时它计算为序列+扩展哈希

    首先我要说的是 使用 Struts2 Freemarker 真是太棒了 然而有些事情让我发疯 因为我不明白为什么会发生这种情况 我在这里问是因为也许其他人有一个想法可以分享 我有一个动作 有一个属性 说 private String myT
  • 使用架构注册表对 avro 消息进行 Spring 云合约测试

    我正在查看 spring 文档和 spring github 我可以看到一些非常基本的内容examples https github com spring cloud samples spring cloud contract sample
  • 流中的非终结符 forEach() ?

    有时 在处理 Java Stream 时 我发现自己需要一个非终端 forEach 来触发副作用但不终止处理 我怀疑我可以用 map item gt f item 之类的方法来做到这一点 其中方法 f 执行副作用并将项目返回到流中 但这似乎
  • Docker 和 Eureka 与 Spring Boot 无法注册客户端

    我有一个使用 Spring Boot Docker Compose Eureka 的非常简单的演示 我的服务器在端口 8671 上运行 具有以下应用程序属性 server port 8761 eureka instance prefer i
  • Java EE 目录结构

    我对以下教程有疑问 http www mkyong com jsf2 jsf 2 internationalization example http www mkyong com jsf2 jsf 2 internationalizatio

随机推荐

  • gstreamer playbin - 在 Windows 上设置 uri

    我正在尝试使用此站点上的 CLI 示例播放一些音频文件 http pygstdocs berlios de pygst tutorial playbin html http pygstdocs berlios de pygst tutori
  • C代码中的QA C警告消息[重复]

    这个问题在这里已经有答案了 我编写了以下一段代码并通过 QA C 进行了分析 但它显示了警告 x 具有外部链接 并且正在定义而没有任何先前的声明 请帮助我理解这一点 Code include
  • 使用 cURL 命令时出现 URL 问题

    我在使用curl 来使用网络服务时遇到了问题 如果我们使用 Postman 消费 有一个 URL 可以正常工作 但如果通过 cURL 消费 则失败 Postman 中的 URL 工作正常 https localhost WebService
  • R 将矩阵的行乘以向量的行的最快方法

    我想将矩阵的行乘以向量的每一行 元素 而不是整个向量 正如已经发布的另一个问题所讨论的那样 例如 我想使用这两个矩阵 或者 oo 是一个向量 因为它是一列 oo matrix 1 3 3 1 oop matrix 1 9 3 3 byrow
  • 如何检查滚动条是否可见?

    是否可以检查overflow auto一个 div 的 例如 HTML div style width 100px height 100px class my class content div JQUERY my class live h
  • bash 使用正则表达式查找不区分大小写

    我需要查找以三个小写字母开头的文件 但由于某种原因 我遇到了不希望的不区分大小写的行为 我将 find 与 regex 选项一起使用 但它甚至找到以大写字母开头的文件 find regextype posix egrep regex a z
  • JSON 与 XML 的性能注意事项

    我正在使用一个 Web 服务 它提供 XML 或 JSON 格式的大型结果集 哪种格式会更快或更好 基于性能 另外我应该使用哪种语言来解析 XML JSON 我应该使用 PHP 还是 JavaScript PHP 或 JavaScript
  • Android - Facebook 共享内容被覆盖

    这是我在 Facebook 上分享高分的代码 ShareLinkContent content new ShareLinkContent Builder setImageUrl Uri parse http www example com
  • 获取 Today-Extension 内通知中心的宽度

    我目前正在尝试将 CollectionView 放入 Today 扩展中 但有件事让我烦恼 我希望实现每个单元格都适合我的集合视图的一行 因此 根据项目数计算单元格宽度 在 iPhone 上一切正常 但在 iPad 上却看起来不太正常 单元
  • 将 Azure 诊断日志写入 Blob 存储的性能影响

    我们在 Azure 上运行的 C Web 应用程序使用 System Diagnostics Trace 编写跟踪语句以进行调试 故障排除 一旦我们为这些日志启用 blob 存储 使用 Azure 门户中的 应用程序日志记录 blob 选项
  • 将 Serilog 与 Azure 日志流结合使用

    我一直在研究如何使用 Serilog 写入 Azure 日志流 我也在这里找到了一些答案 例如 一个答案是建议登录到特定文件夹中的文件 home LogFiles http 但它似乎对我不起作用 我尝试使用Trace https githu
  • 添加 Material Design 时,布局预览不显示布局

    我正在开发一个 Android 应用程序 一切看起来都很完美 直到我决定使用材料设计在我的主题中 添加后材料设计主题 布局预览不显示预览 但在手机上构建时效果良好 当删除 xml 中使用的材料设计组件时 一切都完美运行 附上我的代码 活动主
  • 列出文件中的 unicode 单词

    我的代码是 f codecs open r C Users Admin Desktop nepali txt r UTF 8 nepali f read split for i in nepali print i 显示文件中的单词 但是当我
  • 如何修复:致命错误:openssl/opensslv.h:RedHat 7 中没有这样的文件或目录

    我有 RedHat Enterprise Linux Server 7 并且下载了 linux 内核版本 4 12 10 我正在尝试编译它 但是当我执行以下命令时 make modules 我收到以下错误 scripts sign file
  • 使用默认过滤器值加载数据表

    尝试使用数据表中的输入框构建自定义搜索 请找到小提琴版本 http jsfiddle net c6cu705n http jsfiddle net c6cu705n 我试图仅加载表中的 San Francisco 值 而不加载其他值 尝试了
  • 如何使 ProgressDialog 可以通过后退按钮取消,但不能通过屏幕点击取消?

    我想做一个ProgressDialog可以通过后退按钮取消 但不能通过屏幕点击取消 目前我使用setCancelable true 然而 在一些较新的设备中 点击屏幕也会取消ProgressDialog 我想禁用屏幕点击操作Progress
  • iOS UITextField 在文本更改时更改位置

    我用它来将文本字段置于相关内容的中心 textField setCenter someObject center textField becomeFirstResponder 这看起来很棒 很漂亮 并且位于对象的中心 可以接受文本 我希望文
  • Python smtplib 代理支持

    我想通过代理发送电子邮件 我目前的实现如下 我通过身份验证连接到 smtp 服务器 成功登录后 我会发送一封电子邮件 它工作正常 但当我查看电子邮件标题时 我可以看到我的主机名 我想通过代理来传输它 任何帮助将不胜感激 Use Socksi
  • OracleConnection 生命周期 - 最佳实践

    我正在使用标准 Oracle 驱动程序连接到数据库 但对于 OracleConnection 的生命周期 我不太同意我的同事的观点 创建成本高吗 它是线程安全的吗 我可以在请求之间重复使用它 还是应该为每个请求创建一个新的 如果能更详细地解
  • 从 ExecutorService 更新 JProgressBar

    我正在使用 Java ICMP ping 功能对网关进行 ping 操作 为了执行快速 ping 我使用 ExectorService 创建用于 ping 的线程 地址被 ping 或不 后 我想在 ping 后更新 Jprogressba