你有一个经典的并发和Swing问题.您的问题是您在主Swing线程,EDT或事件调度线程上执行长时间运行的任务,这将锁定线程,直到该过程完成,从而阻止它执行其任务,包括与用户交互和绘制GUI图形.

解决方案是在后台线程中执行长时间运行的任务,例如SwingWorker对象给出的.然后,您可以通过SwingWorker的发布/进程对更新进度条(如果是决定因素).有关这方面的更多信息,请阅读Concurrency in Swing上的这篇文章.

例如.,

public void myMethod() {

final MyProgessBarFrame progFrame = new MyProgessBarFrame();

new SwingWorker() {

protected Void doInBackground() throws Exception {

// do some processing here while the progress bar is running

// .....

return null;

};

// this is called when the SwingWorker's doInBackground finishes

protected void done() {

progFrame.setVisible(false); // hide my progress bar JFrame

};

}.execute();

progFrame.setVisible(true);

}

此外,如果从另一个Swing组件显示它,那么您应该显示模态JDialog而不是JFrame.这就是我在SwingWorker代码之后在窗口上调用setVisible(true)的原因 – 这样如果它是一个模态对话框,它就不会阻止SwingWorker被执行.

java jframe 运行_java – 使用JProgressBar运行JFrame相关推荐

  1. java显示菜单栏_Java:如何检查JFrame的菜单栏是显示在系统菜单栏还是框架本身?...

    (From Swing)中的JFrame允许您设置菜单栏(使用JFrame.setMenuBar(mb)的MenuBar实例;).此菜单栏可以显示在不同的位置,具体取决于其运行的系统.如果运行应用程序 ...

  2. java c 速度_Java和C#运行速度对比:Java比C#快约3倍

    测试条件: Java版本: Java 8, .NET版本:v4.0, Release模式,针对x86平台优化 单线程模式. Java代码: package javatest; public class ...

  3. Java界面命名_java中用setTitel和JFrame给窗体命名的区别

    展开全部 下面是一个计算器的例子: import java.awt.BorderLayout; import java.awt.Dimension; import java.awt.GridLayou ...

  4. java 模拟电梯_java模拟电梯运行简单实现,swing界面

    每次只能一个人,,,功能不全 import javax.swing.*; import java.awt.*; import java.util.*; public class Hufan exten ...

  5. java运行时_java编译时与运行时概念与实例详解

    Java编译时与运行时很重要的概念,但是一直没有明晰,这次专门博客写明白概念. 基础概念 编译时 编译时顾名思义就是正在编译的时候.那啥叫编译呢?就是编译器帮你把源代码翻译成机器能识别的代码.(当然只 ...

  6. java 打包运行_java 打包与运行

    问题1:java -jar xxx.jar,运行jar包没有主属性清单 解决:打开压缩包打开文件夹META-INF,找到MANIFEST.MF文件,增加: Main-Class: hadoop.Hdf ...

  7. java文件不能运行_java文件不能运行怎么办?

    java文件不能运行怎么办? java文件不能运行的解决办法: 1.安装好Java虚拟机后,打开桌面上"我的电脑",点击菜单"工具"→"文件夹选项&q ...

  8. java jvm原理_JAVA和JVM运行原理

    JVM是java的核心和基础,在java编译器和os平台之间的虚拟处理器.它是一种利用软件方法实现的抽象的计算机基于下层的操作系统和硬件平台,可以在上面执行java的字节码程序. 编译器负责把Java ...

  9. java怎么在cmd运行_java在cmd运行的步骤

    java在cmd运行的步骤 发布时间:2020-06-29 17:15:40 来源:亿速云 阅读:77 作者:Leah 本篇文章给大家分享的是有关java在cmd运行的步骤,小编觉得挺实用的,因此分享 ...

最新文章

  1. 干净架构在 Web 服务开发中的实践
  2. 药品查询APP开发流程(七)--开发—yao.js
  3. 【快乐水题】677. 键值映射
  4. php的declare命令
  5. bios免电池补丁_补丁和权限 处理器漏洞多大这样看
  6. IIS 崩溃的后的感受
  7. CodeForces - 1017D The Wu
  8. Altium Designer哪里下载和导入元件库_图文教程
  9. 学习CodeIgniter框架之旅(二)继承自定义类
  10. shell学习笔记 (9.1)
  11. 网 络 响 应 状 态 码 常 见 的 错 误 代 码 及 错 误 原 因
  12. 向Windows 日志管理器写入系统程序日志信息
  13. Spring Batch 入门教程
  14. matlab代码运行教程(如何运行下载的代码)
  15. 【工作日记18】渗透测试之xml注入攻击、CRLF漏洞
  16. Spark面试题(2)
  17. Ecshop 2.7.1 B2B2C 小京东 商城网站 商品详情页二维码显示出错
  18. input框的输入事件
  19. java中separator_JAVA中file.separator ,path.separator,line.separator
  20. 通过jstack分析cpu问题

热门文章

  1. mysql主备在同一台_MySQL高可用(一)主备同步:MySQL是如何保证主备一致的
  2. 2.5 指数加权平均的偏差修正-深度学习第二课《改善深层神经网络》-Stanford吴恩达教授
  3. 4.9 总结-深度学习第一课《神经网络与深度学习》-Stanford吴恩达教授
  4. matlab与quartus的联合数据交换(NCO与文件数据的混频处理)
  5. Android4.0添加java层服务
  6. 【arduino】继续用arduino玩CyberPi童芯派之DA音频信号播放
  7. 雷达篇(六)电磁波的大气衰减
  8. DB1:数据库的创建和文件的修改
  9. bash之流程控制for循环及bash命令退出和退出状态码
  10. PHP mysql_real_escape_string() 函数