如何使用线程在java中暂停执行

2024-03-12

我以编程方式创建了一个向导。它包含 3 个面板。第二个是devicePane,第三个是detailsPane。第三个面板包含一个进度条。我希望我的程序启动一个功能process()显示第三个面板后?可以使用线程吗?

else if(ParserMainDlg.this.POSITION==1){
    if(sqlConnectionPane.executeProcess()==true){    
        devicePane.setDeviceList();                             
         ParserMainDlg.this.POSITION++;
         fireStateChanged(oldValue);
    }
}
else if(ParserMainDlg.this.POSITION==2){
    System.out.println("position:"+ParserMainDlg.this.POSITION);
    if(devicePane.executeProcess()==true){
         ParserMainDlg.this.POSITION++;
         fireStateChanged(oldValue);    
    }

I want sqlConnectionPane.executeProcess()调用在显示 devicePane 面板后开始执行的函数?


您绝对可以使用线程来执行任务,这是处理长时间运行的任务的首选方式。

您在这里有多种选择。所有选项都包括回调您的向导,以更新进度条。

您可以创建自己的任务类来完成此任务,或者您可以使用现有的摇摆工人 http://docs.oracle.com/javase/7/docs/api/javax/swing/SwingWorker.html。 “SwingWorker 本身是一个抽象类;您必须定义一个子类才能创建 SwingWorker 对象;匿名内部类通常可用于创建非常简单的 SwingWorker 对象。”

使用我们刚刚了解到的 Swing Worker,您可以使用如下内容:

SwingWorker<Integer, Integer> backgroundWork = new SwingWorker<Integer, Integer>() {

        @Override
        protected final Integer doInBackground() throws Exception {
            for (int i = 0; i < 61; i++) {
                Thread.sleep(1000);
                this.publish(i);
            }

            return 60;
        }

        @Override
        protected final void process(final List<Integer> chunks) {
            progressBar.setValue(chunks.get(0));
        }

    };

    backgroundWork.execute();

请注意,您必须将任务分解为更小的部分才能真正显示进度。

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

如何使用线程在java中暂停执行 的相关文章

随机推荐

  • 使用 CSS 根据图像所在 DIV 的大小调整图像大小?

    下面是我正在开发的博客的图片 不过我需要一些 CSS 方面的帮助 在上图中 您可以看到当我的头像右侧的文本正文大于图像时 它会发生什么情况 下图是我想要的样子 我的问题是有多个作者 因此右侧的正文可能会根据作者的不同而具有不同的长度 我想以
  • 如何使用核心蓝牙框架获取数据?

    我正在开发一个iOS核心蓝牙应用程序 我可以使用iphone4S连接蓝牙设备 但我不知道如何与设备通信 我想从设备读取信息 我也看到这个源代码https github com sergiomtzlosa CoreBluetooth Demo
  • LINQ 选择列表,其中子列表包含另一个列表中的项目

    我不知道如何创建这个查询 如果项目 Cats 列表包含与 List2 中其中一只猫的 ID 匹配的 Cat 对象 我需要选择列表 1 中的项目 这可能吗 谢谢 List1
  • 如何在反应中隐藏登录和注册页面中的导航栏?

    我的路线是这样的
  • 两个字符串序列中的最长公共子串

    刚刚学习了最长公共子串算法 我对这个问题的一个特定变体感到好奇 其描述如下 给定两个非空字符串序列 X x1 x2 x3 x n 和 Y y1 y2 y3 y m 其中 x i 和 y i 是字符串 求longestX 中的字符串 它是al
  • 读取内存映射的 bzip2 压缩文件

    所以我正在使用维基百科转储文件 它是一个经过 bzip 压缩的 XML 文件 我可以将所有文件写入目录 但是当我想做分析时 我必须重新读取磁盘上的所有文件 这使我可以随机访问 但速度很慢 我有 ram 将整个 bzipped 文件放入 ra
  • 使用嵌套转发器对一组数据集进行分组

    假设我有一些这样的书籍数据 我有一个查询 例如SELECT FROM BookData以上述格式输出 我想使用嵌套的转发器控件来输出 html 中的数据 table 看起来像这样 数据结果按作者分组 到目前为止 我的 asp net Web
  • 对热图的刻度线进行分组

    I have a heatmap that looks like this from Plotting a 2D heatmap with Matplotlib https stackoverflow com questions 33282
  • 使用 JTable 作为 JTree 单元格编辑器

    我想使用 JTable 来编辑 JTree 我扩展了 DefaultTreeCellEditor 并实现了 isCellEditable getTreeCellEditorComponent 在 getTreeCellEditorCompo
  • 有 DGML 查看器吗? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我已经开始玩了DGML http en wikipedia org wiki DGML用于基于某些制造
  • 现在 x86 上有多少指令? [关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 我正在尝试
  • 仅使用套接字的 Python 邮件客户端(无 smtplib)

    我正在尝试编写一个 python 程序 它将在不使用 smtplib 的情况下发送电子邮件 我尝试查看有关此问题的其他帖子 但找不到解决方案 from socket import msg r n My email s content end
  • Spring MVC 项目无法发布和运行...消息:无法自省注释

    我有一个 Spring MVC 应用程序 4 1 1 发布版本 当我尝试发布并在服务器上运行时 我收到以下错误 附加信息 使用Spring工具套件3 6 1 春季版本 4 1 1 RELEASE 这是一个maven项目 它没有任何编译错误
  • OCMock - 部分模拟 [UIAlertView alloc]

    我有一个问题OCMockiOS 框架 我本质上是想嘲笑UIAlertView s initWithTitle message delegate 方法 下面的示例不起作用 因为当我调用时 未返回存根返回值initWithTitle metho
  • 使用 Gson 2.3.1 反序列化包含在 Java 中不起作用的接口的 Json 字符串

    我正在尝试使用 Gson 将包含接口和哈希图 具有接口类型和包含接口类型的列表 的 json 字符串反序列化为 java 对象 但我越来越 java lang RuntimeException 无法调用接口 com abc Dummy 的无
  • R - 使用匹配运算符时保留顺序 (%in%)

    我正在使用匹配运算符从单独的数据框中获取矩阵中出现的值 但是 生成的矩阵的值按照它们在数据框中出现的顺序排列 而不是按原始矩阵排列 有没有办法使用匹配运算符来保留原始矩阵的顺序 这是一个简单的例子 vec c b a c vec df da
  • jQuery 克隆表行

    我有一个表 末尾有一个 添加 按钮 当您单击此按钮时 我希望在当前行下方创建一个新的表行 我还希望该行的输入字段为空 我尝试使用 clone 来执行此操作 但它会克隆页面上的所有行 请帮忙 谢谢 Script input tr clone
  • 位置侦听器从服务工作,但不是 IntentService

    我有一个应用程序 我试图定期获取用户位置并将其发送到服务器 我有一项服务附加到AlarmManager每分钟执行一次 用于测试 该服务正确找到用户位置并注销 GPS 坐标 一旦出现 GPS 锁定 我就会取消位置请求并停止服务 当我请求位置更
  • C++ 2D 曲面细分库?

    我有一些凸多边形存储为点的 STL 向量 或多或少 我想要镶嵌 http en wikipedia org wiki Tesselate它们非常快 最好分成大小相当均匀的块 并且没有 条子 我将用它来将一些物体分解成小碎片 有谁知道一个很好
  • 如何使用线程在java中暂停执行

    我以编程方式创建了一个向导 它包含 3 个面板 第二个是devicePane 第三个是detailsPane 第三个面板包含一个进度条 我希望我的程序启动一个功能process 显示第三个面板后 可以使用线程吗 else if Parser